ΚΕΦΑΛΑΙΟ 3

ΑΣΦΑΛΕΙΣ ΣΥΝΑΛΛΑΓΕΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

Χρήστος Κ. Γεωργιάδης
Αναπληρωτής Καθηγητής Πανεπιστημίου Μακεδονίας
geor@uom.edu.gr


Οκτώβριος 2015


Περιεχόμενα

 

Σύνοψη

Οι συναλλαγές στον παγκόσμιο Ιστό και κυρίως σε περιβάλλοντα ηλεκτρονικού εμπορίου δέχονται απειλές με διάφορους τρόπους. Απειλές όπως το κακόβουλο λογισμικό αλλά και το ηλεκτρονικό ψάρεμα είναι ανάμεσα στους πιο διαδεδομένους τρόπους υποκλοπής ή παραποίησης δεδομένων. Το παρόν κεφάλαιο, στο πρώτο μέρος του, περιγράφει αναλυτικά τις απειλές αυτές που υπάρχουν σε σύγχρονα περιβάλλοντα ηλεκτρονικού εμπορίου. Στη συνέχεια, η εστίαση μεταφέρεται στο πώς αντιμετωπίζονται οι διάφορες επιθέσεις ασφάλειας και επεξηγείται το πολύ κρίσιμο ζήτημα του ελέγχου προσπέλασης (access control). Παρουσιάζονται τα θεμελιώδη μοντέλα και οι πολιτικές εξουσιοδοτήσεων αυτών. Ιδιαίτερο βάρος δίνεται στην απόδοση προνομίων βάσει ρόλων (RBAC), καθώς και στην αξιοποίηση του πλαισίου αναφοράς (context) κατά τον έλεγχο προσπέλασης. Τέλος, μας απασχολούν τα συστήματα πληρωμών με τα ειδικότερα ζητήματα ασφάλειας και διαφύλαξης της ιδιωτικότητας που αυτά θέτουν. Ειδική αναφορά γίνεται σε δύο σημαντικά σχήματα-πρωτόκολλα ασφαλείας που εμπλέκονται στην υποστήριξη πληρωμών ηλεκτρονικού εμπορίου.

Προαπαιτούμενη γνώση

Το κεφάλαιο 2 του παρόντος συγγράμματος

1. Απειλές Ασφαλείας σε Περιβάλλοντα Ηλεκτρονικού Εμπορίου

Στη παράγραφο αυτή θα εστιάσουμε αρχικά στις απειλές λόγω κακόβουλου λογισμικού. Στη συνέχεια, θα αναφερθούμε σε ορισμένες άλλες αρκετά διαδεδομένες απειλές, όπως το ηλεκτρονικό ψάρεμα και η παραποίηση ταυτότητας. Τέλος, θα μιλήσουμε για μια ιδιαίτερη κατηγορία απειλών, στις απειλές λόγω κακής σχεδίασης της υποστήριξης ‘κινητού’ κώδικα.

1.1 Κακόβουλο λογισμικό

Σημαντικές απειλές εκδηλώνονται μέσω προγραμμάτων που εκμεταλλεύονται μία ή περισσότερες ευπάθειες των συστατικών μερών της υποδομής υποστήριξης στα περιβάλλοντα ηλεκτρονικού εμπορίου. Τέτοια προγράμματα αναφέρονται με τον όρο κακόβουλο λογισμικό (malicious software ή malware). Είναι προγράμματα κατασκευασμένα ειδικά με στόχο την παραβίαση της ασφάλειας του συστήματος. Μια πρώτη κατηγοριοποίηση του κακόβουλου λογισμικού διακρίνει αυτό που χρειάζεται ένα πρόγραμμα-φορέα σε αντιδιαστολή με αυτό που λειτουργεί ανεξάρτητα (Κάτσικας, 2001). Έτσι, στην πρώτη κατηγορία ανήκουν ουσιαστικά τμήματα προγράμματος που δεν είναι δυνατόν να υπάρξουν μόνα τους, χωρίς κάποιο λογισμικό συστήματος ή κάποιο πρόγραμμα εφαρμογής. Ενώ στη δεύτερη κατηγορία ανήκουν όσα είναι αυτόνομα προγράμματα που μπορούν να εκτελεστούν κάτω από τον έλεγχο του λειτουργικού συστήματος, όπως συμβαίνει στα ‘κανονικά’ προγράμματα.

Μια άλλη κατηγοριοποίηση του κακόβουλου λογισμικού διακρίνει το μη αναπαραγόμενο από το αναπαραγόμενο. Η πρώτη κατηγορία περιλαμβάνει τμήματα προγράμματος που ενεργοποιούνται όταν καλείται το πρόγραμμα-φορέας για να εκτελέσει μια συγκεκριμένη λειτουργία. Η δεύτερη κατηγορία περιλαμβάνει τμήματα προγράμματος, αλλά και αυτόνομα προγράμματα που, όταν εκτελούνται, μπορούν να παραγάγουν ένα ή περισσότερα αντίγραφα του εαυτού τους, τα οποία θα ενεργοποιηθούν αργότερα στον ίδιο ή σε κάποιον άλλον υπολογιστή.

Για την εγκατάσταση (μόλυνση) ενός κακόβουλου λογισμικού σε ένα μηχάνημα, συνήθως απαιτείται η ανθρώπινη συμμετοχή. Η συμμετοχή αυτή μπορεί να είναι άμεση (π.χ. εισαγωγή ενός USB, άνοιγμα συνημμένων αλληλογραφίας, προεπισκόπηση μηνυμάτων αλληλογραφίας, ανταλλαγή αρχείων κλπ.), αλλά μπορεί να είναι και έμμεση (π.χ. μη ενημέρωση του λογισμικού ασφαλείας, επιλογή προφανούς κωδικού σύνδεσης κλπ.). Το τμήμα του κώδικα που είναι υπεύθυνο για τις παρενέργειες του λογισμικού καλείται φορτίο (payload). Το κακόβουλο λογισμικό περιλαμβάνει και επιπρόσθετο κώδικα με σκοπό α) την αναπαραγωγή του (την εξάπλωση του στο σύστημα που προσβάλλει - «μόλυνση» από το ένα πρόγραμμα του μηχανήματος σε άλλο πρόγραμμα) και β) τη μετάδοσή του (την εξάπλωσή του από το μηχάνημα που μολύνθηκε σε άλλα) (Μάγκος. 2013).

Όλα τα είδη κακόβουλου λογισμικού δίνουν μεγάλη σημασία στον εντοπισμό της πιο κατάλληλης περιοχής για να εγκατασταθούν. Επιδιώκουν η εκτέλεσή τους να μην είναι ανιχνεύσιμη, να εγγράφονται στο μητρώο του συστήματος και να δημιουργούν εμπόδια στις διαδικασίες αφαίρεσής τους.

1.1.1 Μορφές κακόβουλου λογισμικού

Με βάση τον τρόπο λειτουργίας του κακόβουλου λογισμικού, αναφέρονται στην παράγραφο αυτή τα κυριότερα είδη (Kura, 2013; Μάγκος, 2013). Να σημειωθεί βέβαια, ότι συχνά συναντούμε περιπτώσεις συνδυασμών αυτών των ειδών (όπως ιός μαζί με δούρειο ίππο, ιός σε συνδυασμό με σκουλήκι κλπ.).

Ιός (virus): Κακόβουλο λογισμικό το οποίο αφού μολύνει ένα μηχάνημα έχει την ικανότητα να αναπαράγεται και να μολύνει και άλλα προγράμματα στο μηχάνημα αυτό. Ο όρος, όχι τυχαία, προήλθε από τη βιολογία. Ο βιολογικός ιός είναι ένα πολύ μικρό τμήμα γενετικού κώδικα που μπορεί να καταλάβει τον μηχανισμό αναπαραγωγής ενός υγιούς ζωντανού κυττάρου κάποιου οργανισμού και να τον εξαπατήσει, έτσι ώστε να δημιουργήσει χιλιάδες τέλεια αντίγραφα του εαυτού του (του ιού). Όπως και τα βιολογικά τους ανάλογα, οι ιοί του υπολογιστή περιέχουν στον κώδικά τους τη «συνταγή» δημιουργίας τέλειων αντιγράφων του εαυτού τους (Κάτσικας, 2001). Μόλις εγκατασταθεί ο ιός, οποτεδήποτε ο μολυσμένος υπολογιστής έρθει σε επαφή με μη μολυσμένο πρόγραμμα, το πρόγραμμα αυτό μολύνεται με την εισαγωγή στον κώδικά του ενός αντιγράφου του ιού. Για το ιομορφικό κακόβουλο λογισμικό στις σύγχρονες εκφάνσεις του, θα δώσουμε λόγω της σοβαρότατης απειλής που αποτελεί, και κάποια επιπλέον στοιχεία σε ακόλουθη παράγραφο.

Σχήμα 3.1 Πριν και μετά τη μόλυνση του εκτελέσιμου αρχείου

Σκουλήκι (Worm): Κακόβουλο λογισμικό το οποίο, αφού μολύνει ένα μηχάνημα, έχει την ικανότητα να μεταδίδεται αυτόματα, κάνοντας χρήση της υπάρχουσας δικτυακής υποδομής. Από τη στιγμή που θα ενεργοποιηθεί μέσα σ’ ένα σύστημα, το σκουλήκι μπορεί να συμπεριφερθεί ως ιός ή ως βακτήριο ή να εισαγάγει Δούρειους Ίππους ή να εκτελέσει οποιαδήποτε καταστροφική ενέργεια (Aycock, 2006). Για να αναπαραχθεί ένα σκουλήκι μπορεί να χρησιμοποιήσει την υπηρεσία ηλεκτρονικού ταχυδρομείου (ταχυδρομεί ένα αντίγραφο του εαυτού του σε άλλα συστήματα), την υπηρεσία εκτέλεσης από απόσταση (εκτελεί ένα αντίγραφο του εαυτού του σε κάποιο άλλο σύστημα) ή την υπηρεσία σύνδεσης από απόσταση (συνδέεται με ένα απομακρυσμένο σύστημα ως χρήστης και μετά χρησιμοποιεί εντολές για να αντιγράψει τον εαυτό του από ένα σύστημα σε άλλο).

Δούρειος Ίππος (Trojan Horse): Κακόβουλο λογισμικό στο οποίο είναι εγγενές το στοιχείο της παραπλάνησης, καθώς συνήθως μεταμφιέζεται σε μια χρήσιμη εφαρμογή, η οποία όμως περιέχει κακόβουλο κώδικα (Μάγκος, 2013). Για παράδειγμα ο χρήστης παροτρύνεται να δει μια φωτογραφία, ή να κατεβάσει ένα δωρεάν εργαλείο που ωστόσο περιέχει κακόβουλο κώδικα. Συνήθως, ένας δούρειος ίππος δημιουργεί μια κερκόπορτα ή πίσω πόρτα (backdoor) στο σύστημα, στην οποία ο επιτιθέμενος θα μπορέσει αργότερα να συνδεθεί ώστε να διαχειριστεί εξ’ αποστάσεως το σύστημα. Ως κερκόπορτα ορίζεται κάθε μυστικό σημείο εισόδου σ’ ένα πρόγραμμα, που επιτρέπει σε κάποιον που τη γνωρίζει να αποκτήσει δικαιώματα προσπέλασης στο σύστημα, παρακάμπτοντας τις συνήθεις διαδικασίες ελέγχου προσπέλασης. Τις περισσότερες φορές τα trojans δεν αναπαράγονται και για αυτόν τον λόγο δε χαρακτηρίζονται ως ιοί. Όμως χρησιμοποιούνται ως μέσο μεταφοράς για διάφορες μορφές κακόβουλου λογισμικού (spyware, adware, rootkits, ιούς ή σκουλήκια), οπότε εμπίπτουν στην κατηγορία του πολυμερούς (multipartite) κακόβουλου λογισμικού. Να σημειωθεί βεβαίως ότι η ονομασία παραπέμπει στον Δούρειο Ίππο που χρησιμοποίησαν οι αρχαίοι Έλληνες για να παραπλανήσουν τους Τρώες, κατά τον Τρωικό πόλεμο.

Spyware – Adware: Κακόβουλο λογισμικό με χαρακτηριστικά που εντάσσονται στις λειτουργίες ενός Δούρειου Ίππου (κυρίως ως προς τον τρόπο μόλυνσης), με σκοπό την παρακολούθηση - υποκλοπή ευαίσθητων δεδομένων (spyware), ή την αποστολή ανεπιθύμητων διαφημιστικών μηνυμάτων (adware). Αναφέρονται ως μέλη της ίδιας κατηγορίας, καθώς συνήθως συνεργάζονται για να πετύχουν τον σκοπό τους (πχ. παρακολούθηση της αγοραστικής συμπεριφοράς κατά την περιήγηση στον παγκόσμιο Ιστό και στη συνέχεια εμφάνιση διαφημιστικών μηνυμάτων). Στα ευαίσθητα δεδομένα που στοχεύει το spyware ενδεικτικά περιλαμβάνονται προσωπικά στοιχεία, ονόματα χρήστη, κωδικοί πρόσβασης, κλειδιά, αριθμοί πιστωτικής κάρτας, και λεπτομέρειες συναλλαγών. Η χειρότερη εκδοχή του spyware είναι ως λογισμικό keylogger που υποκλέπτει κάθε χαρακτήρα που πληκτρολογεί ο χρήστης και τον προωθεί (στο παρασκήνιο, πχ. μέσω e-mail) σε τρίτους. Συνήθως τα spyware συνεργάζονται με λογισμικά adware ή/και με διαφημιστικές εταιρείες στο Internet, με σκοπό τη δημιουργία ενός προφίλ χρήστη και την αποστολή στοχευμένων διαφημίσεων. Οι παρενέργειες ενός λογισμικού adware ποικίλουν (Μάγκος, 2013): εμφάνιση ανεπιθύμητων μηνυμάτων στο πρόγραμμα περιήγησης (browser), ή στην επιφάνεια εργασίας (desktop), αλλαγή της αρχικής σελίδας του browser (browser hijacking), αλλαγή της αρχικής σελίδας αναζήτησης στο Web, ανακατεύθυνση (redirection) σε πλαστό δικτυακό τόπο (web spoofing), κλπ. Όταν οι παρενέργειες των spyware/adware είναι μικρής κλίμακας, αντί του όρου ‘«κακόβουλο λογισμικό»’ χρησιμοποιείται ο όρος «‘ανεπιθύμητο λογισμικό»’ (potentially unwanted programs, PUPs). Άλλος όρος που χρησιμοποιείται είναι greyware, ακριβώς για να εστιάσει στο ότι πρόκειται για λογισμικό το οποίο, ενώ δεν είναι πάντα πλήρως κακόβουλο, έχει μια ύποπτη ή πιθανώς ανεπιθύμητη πτυχή σε αυτό.

Rootkit: Όπως φαίνεται από την ονομασία τους, ένα rootkit είναι κακόβουλο λογισμικό το οποίο λειτουργεί σε πολύ χαμηλό επίπεδο στο λειτουργικό σύστημα, και συνήθως ενσωματώνει λειτουργίες απόκρυψης (stealth) ώστε να παρακάμπτει τους μηχανισμούς πρόληψης και ανίχνευσης. Αξιοποιεί προνόμια Διαχειριστή (Administrator) με σκοπό ακριβώς την απόκρυψη της παρουσίας του στο σύστημα. Ένα λογισμικό rootkit μπορεί να ανήκει σε οποιαδήποτε από τις παραπάνω κατηγορίες, ωστόσο συνήθως ανοίγει κερκόπορτες που θα επιτρέψουν τη μετέπειτα απομακρυσμένη διαχείριση του μηχανήματος από κάποιον τρίτο. Ο κακόβουλος κώδικας τύπου rootkit (ή αλλιώς τύπου stealth), ενσωματώνει λειτουργίες όπως (Μάγκος, 2013): α) απόκρυψη process (process hiding) – αποκρύπτεται μια διαδικασία αφαιρώντας την από τον πίνακα Διαχείρισης Εργασιών (Task Manager), ή υλοποιείται μια διαδικασία ως ένα σύνολο νημάτων (threads), των οποίων η ανίχνευση είναι δύσκολη, β) απόκρυψη θύρας (port) - αποκρύπτεται η λίστα με τις θύρες που θα χρησιμεύσουν ως «κερκόπορτες» για την απομακρυσμένη διαχείριση του συστήματος και γ) απόκρυψη κλειδιού στο μητρώο (registry) - χρησιμοποιούνται ονόματα κλειδιών που δεν εγείρουν υποψίες (που παραπέμπουν σε «ακίνδυνες» ή χρήσιμες εφαρμογές, πχ. WindowsOS.exe)

Βot – zombie: Κακόβουλο λογισμικό που προσβάλλει υπολογιστές καθιστώντας τους μέλη ενός δικτύου υπολογιστών (botnet) που ελέγχεται εξ’ αποστάσεως από τρίτους, με σκοπό την πραγματοποίηση Κατανεμημένων Επιθέσεων Άρνησης Υπηρεσίας (Distributed Denial of Service attacks ή DDOS attacks). Δηλαδή επιθέσεων κατά τις οποίες ένας (συνήθως μεγάλος) αριθμός μολυσμένων υπολογιστών προσπαθεί να συνδεθεί στον υπολογιστή-στόχο μέσω δικτύου προσπαθώντας να τον οδηγήσει σε κατάρρευση: να είναι ανίκανος να λειτουργήσει κανονικά λόγω (κυρίως) του υπερβολικού φόρτου εργασίας για τις αποκρίσεις που καλείται να στείλει καθώς επεξεργάζεται τα πολυπληθή αιτήματα που λαμβάνει. Οι επιθέσεις άρνησης υπηρεσίας είναι επιθέσεις εναντίον της διαθεσιμότητας (availability) του μηχανήματος. Ο όρος «bot», προέρχεται από την (Τσεχικής προέλευσης) λέξη «robota» και χρησιμοποιείται για να περιγράψει κάθε είδους αυτοματοποιημένη διαδικασία. Ένας υπολογιστής που έχει μολυνθεί από ένα bot συχνά αναφέρεται ως «zombie». Οι υπολογιστές–zombies μπορεί να χρησιμοποιηθούν για επιθέσεις τύπου ‘Άρνησης Υπηρεσίας’ (DOS) σε εξυπηρετητές Web, για την αποστολή μηνυμάτων spam, για την πραγματοποίηση επιθέσεων παραπλάνησης (phishing) κλπ.

Βακτήρια (bacteria): Είναι προγράμματα που δεν καταστρέφουν εμφανώς αρχεία. Ο μοναδικός τους σκοπός είναι να πολλαπλασιάζονται. Ένα τυπικό βακτήριο μπορεί να μην κάνει τίποτε περισσότερο από το να τρέχει ταυτόχρονα δύο αντίγραφά του ή πιθανόν να δημιουργεί δύο νέα αρχεία, καθένα απ’ τα οποία είναι αντίγραφο του αρχικού αρχείου που περιέχει το βακτήριο. Και τα δύο αυτά προγράμματα μπορούν στη συνέχεια να αντιγράψουν τον εαυτό τους δύο φορές, κοκ. Τα βακτήρια αναπαράγονται εκθετικά και τελικά καταλαμβάνουν όλη τη χωρητικότητα του επεξεργαστή, της μνήμης ή του δίσκου, στερώντας τους πόρους αυτούς από τους χρήστες (επίθεση τύπου ‘άρνησης υπηρεσίας’).

Λογική βόμβα (logic bomb): Είναι κώδικας ενσωματωμένος σε κάποιο νόμιμο πρόγραμμα εφαρμογής και ρυθμισμένος να «εκραγεί», όταν εκπληρωθούν κάποιες συγκεκριμένες συνθήκες. Παραδείγματα τέτοιων συνθηκών είναι η έλευση μιας συγκεκριμένης μέρας της εβδομάδας ή μιας ημερομηνίας, η παρουσία/απουσία συγκεκριμένων αρχείων, ή η εκτέλεση της εφαρμογής από ένα συγκεκριμένο χρήστη (Ince, 2009; Κάτσικας, 2001). Από τη στιγμή που θα ενεργοποιηθεί, η βόμβα μπορεί να τροποποιήσει ή να διαγράψει δεδομένα ή και ολόκληρα αρχεία, να προκαλέσει το σταμάτημα ενός συστήματος ή να κάνει οποιαδήποτε άλλη ζημιά.

Σχήμα 3.2 Είδη κακόβουλου λογισμικού

1.1.2 Σύγχρονο κακόβουλο λογισμικό σε περιβάλλοντα παγκόσμιου Ιστού

Η διείσδυση του παγκόσμιου Ιστού και των υπηρεσιών του, είχε ως συνέπεια τη δημιουργία και την αλματώδη εξάπλωση νέων και πιο ισχυρών μορφών κακόβουλου λογισμικού. Ειδικότερα όσον αφορά τους ιούς, μπορούμε πλέον να διακρίνουμε τους ακόλουθους τύπους (Virus bulletin, 2015; Kura, 2013; Μάγκος, 2013):

Παρασιτικός (parasitic virus): Είναι ο παραδοσιακός (αλλά και πιο διαδεδομένος τύπος ιού). Προσαρτάται σε εκτελέσιμα αρχεία (πχ. αρχεία .exe ή αρχεία .com) και αναπαράγεται, όταν εκτελεστεί το μολυσμένο πρόγραμμα, βρίσκοντας και άλλα εκτελέσιμα αρχεία για να μολύνει. Όταν εκτελεστεί το μολυσμένο πρόγραμμα, εγκαθίσταται συνήθως ως μέρος του λειτουργικού συστήματος και παραμένει στην κύρια μνήμη του συστήματος (memory-resident), ώστε να «μολύνει» και άλλα προγράμματα που εκτελεί ο χρήστης. Αντιθέτως, υπάρχουν και (οι λιγότερο βλαπτικοί) μη-παραμένοντες στη μνήμη ιοί (non memory-resident) οι οποίοι επειδή δεν εγκαθίστανται στην κεντρική μνήμη, όταν εκτελούνται, σαρώνουν το δίσκο για τους στόχους, τους μολύνουν, και στη συνέχεια σταματά η δράση τους.

Τομέα εκκίνησης (boot virus): Οι ιοί αυτοί μολύνουν τον τομέα εκκίνησης (boot sector) ενός σταθερού ή αφαιρούμενου (removable) αποθηκευτικού μέσου (πχ. του σκληρού δίσκου ή ενός flash drive). Ο τομέας εκκίνησης περιέχει ένα πρόγραμμα μικρού μεγέθους το οποίο το λειτουργικό σύστημα εντοπίζει και «φορτώνει» στην κύρια μνήμη. Τέτοιοι ιοί μπορούν επίσης να μολύνουν την περιοχή MBR (Master Boot Record) που περιέχει τον πίνακα κατατμήσεων του δίσκου. Διαδίδονται όταν το σύστημα εκκινήσει από τον δίσκο που περιέχει τον ιό.

Πολυμερής ή Υβριδικός (multipartite, or hybrid virus): Συνδυάζει χαρακτηριστικά δύο ή περισσότερων κατηγοριών. Πχ. χαρακτηριστικά ιών τομέα εκκίνησης και παρασιτικών ιών: ένα μηχάνημα μολύνεται αν χρησιμοποιήσει ένα «μολυσμένο» USB ή αν εκτελέσει ένα μολυσμένο πρόγραμμα. O ιός αποτελείται από κώδικα που καλύπτει και τις δύο περιπτώσεις. Οπότε ανάλογα με την περίσταση εκτελείται το αντίστοιχο τμήμα, ενώ αυξάνονται οι πιθανότητες μόλυνσης.

Ιός συστήματος αρχείων (file system virus): Ένας τέτοιος ιός (άλλα ονόματα σε χρήση είναι link virus, ή cluster virus, ή FAT virus) δε συμπεριφέρεται όπως οι παραδοσιακοί ιοί, δηλαδή δε μολύνει τον κώδικα εκτελέσιμων ή άλλων αρχείων. Έχει ωστόσο τη δυνατότητα να παρεμβάλλεται κατά την κλήση ενός προγράμματος και να εκτελεί τον επιβλαβή του κώδικα. Για να το επιτύχει αυτό, τροποποιεί τον πίνακα διευθύνσεων που υπάρχει στον σκληρό δίσκο κάθε υπολογιστή, όπου είναι καταχωρημένη η ακριβής θέση (διεύθυνση) του κάθε αρχείου στον δίσκο του (Μάγκος, 2013). Το λειτουργικό σύστημα χρησιμοποιεί αυτόν τον πίνακα για να οργανώσει τα αρχεία στον δίσκο, καθώς και κάθε φορά που γίνεται κλήση ενός αρχείου. Ο ιός αλλάζει τον πίνακα διευθύνσεων ώστε όταν ζητείται η εκτέλεση ενός «μολυσμένου» προγράμματος, το λειτουργικό σύστημα παραπέμπεται σε μια άλλη θέση όπου βρίσκεται ο κώδικας του ιού, που στη συνέχεια φορτώνεται στη μνήμη και εκτελείται.

Μακρο–ιός (macro virus): Προσβάλλει αρχεία δεδομένων (documents ή emails) που περιέχουν μακροεντολές (macros). Οι μακροεντολές είναι κώδικας εντολών, γραμμένος με εξειδικευμένες γλώσσες μακροεντολών (macro languages). Συνήθως είναι σε μορφή γλώσσας συγγραφής σεναρίων (scripting language). Πχ. VBA (Visual Basic for Applications). Χρησιμοποιούνται κυρίως σε προγράμματα εφαρμογών γραφείου (πχ. Word, Excel, PowerPoint, Outlook, Acrobat) για την αυτοματοποίηση ορισμένων από τις λειτουργίες που εκτελεί ο χρήστης (Aycock, 2006). Οι μακρο-ιοί είναι συνεπώς μακροεντολές που αυτοματοποιούν ένα σύνολο από κακόβουλες (μοχθηρές) ενέργειες. Πχ. όταν σε έναν επεξεργαστή κειμένου εκτελεστεί η μακροεντολή ενός μολυσμένου εγγράφου, ο ιός ενεργοποιείται και απελευθερώνει το καταστροφικό του φορτίο. Αυτός ο τύπος ιών είναι ο κύριος λόγος αύξησης του αριθμού των ιών που εντοπίζονται σε επιχειρηματικά συστήματα. Η δημοτικότητα των εφαρμογών γραφείου, έχει πραγματικά συνεισφέρει στην εξάπλωση αυτού του είδους των ιών. Η επικινδυνότητα του τύπου αυτού οφείλεται κατ’ αρχάς στο ότι είναι ανεξάρτητος από πλατφόρμες υλικού. O κώδικας που δημιουργείται από μια γλώσσα συγγραφής σεναρίων, μπορεί να εκτελεστεί σε όλες τις πλατφόρμες: ένας μακρο-ιός μπορεί να εκτελεστεί σε ένα PC και σε ένα MAC. Δεύτερο στοιχείο αυξημένης επικινδυνότητας είναι ότι διαδίδονται πολύ εύκολα (με πιο συνηθισμένη μέθοδο διάδοσης το ηλεκτρονικό ταχυδρομείο). Τέλος, επειδή μολύνουν αρχεία δεδομένων (έγγραφα, emails) και όχι εκτελέσιμα προγράμματα, έχουν περισσότερους ‘στόχους’, αφού η πλειοψηφία της πληροφορίας που εισάγεται σε έναν υπολογιστή είναι σε μορφή τέτοιων αρχείων και όχι σε μορφή εκτελέσιμων προγραμμάτων (Κάτσικας, 2001). Οι περισσότερες μακρο-εντολές ενεργοποιούνται με το άνοιγμα ενός εγγράφου (πχ. λειτουργία auto-open). Για την αναπαραγωγή τους συνήθως οι μακρο-ιοί είναι προγραμματισμένοι να μετατρέπουν τα μολυσμένα έγγραφα σε πρότυπα (templates) ώστε να μολυνθούν όλα τα έγγραφα που θα δημιουργήσει μελλοντικά ο χρήστης.

Απόκρυψης (stealth virus): Ειδικά σχεδιασμένος ώστε να αποφεύγει την ανίχνευση από το αντιβιοτικό λογισμικό. Ένας ιός απόκρυψης χρησιμοποιεί τεχνικές που στοχεύουν την εξαφάνιση των ιχνών του καθώς και των συμπτωμάτων του, παρόμοιες με αυτές που συναντούμε (και ήδη αναφέραμε στην προηγούμενη παράγραφο) στο κακόβουλο λογισμικό τύπου rootkit. Για αυτό και αρκετές φορές ο όρος stealth virus χρησιμοποιείται ως συνώνυμο του rootkit. Μια συνηθισμένη τακτική απόκρυψης είναι η παρεμβολή στις κλήσεις του αντιβιοτικού λογισμικού προς ένα αρχείο (read request intercepts) ώστε να επιστρέφει την ‘καθαρή’ έκδοσή του, ενώ λίγο αργότερα γίνεται η επαναφορά της μολυσμένης έκδοσης του αρχείου. Μια άλλη ενδεικτική τεχνική απόκρυψης στοχεύει στην υπερπήδηση του ελέγχου ακεραιότητας (integrity checking) που πραγματοποιούν ορισμένα αντιβιοτικά λογισμικά σε όλες τις εφαρμογές του συστήματος (Μάγκος, 2013). Αυτό σημαίνει πως, όταν τροποποιείται ο κώδικας μιας εφαρμογής το αντιβιοτικό λογισμικό ζητάει από τον χρήστη να επιβεβαιώσει την τροποποίηση (πχ. όταν ο χρήστης εγκαθιστά μια επιδιόρθωση, patch, για μια εφαρμογή). Ένας ιός απόκρυψης παραμένει ενεργός στη μνήμη (memory-resident) περιμένοντας την κατάλληλη στιγμή: θα μπορέσει να μολύνει κατ’ αυτόν τον τρόπο όσα προγράμματα τροποποιούν τον κώδικα τους κατόπιν μιας καθ’ όλα νόμιμης εντολής του χρήστη ή του προγράμματος (πχ. εγκατάσταση μιας αναβάθμισης ή μιας επιδιόρθωσης).

Πολυμορφικός (polymorphic virus): Μαζί με τον προηγούμενο τύπο των ιών απόκρυψης, απαρτίζουν τους καλούμενους δυσανιχνεύσιμους ιούς. Ο πολυμορφικός ιός μεταλλάσσεται με κάθε μόλυνση (αποτελούμενος από σαφώς διαφορετικές ακολουθίες ψηφίων). αλλάζοντας την υπογραφή του και καθιστώντας έτσι αδύνατη την ανίχνευσή του μέσω αυτής (Virus Bulletin, 2015). Για να πετύχει αυτήν τη διαφοροποίηση, ο ιός μπορεί να εισάγει τυχαίες περιττές εντολές ως θόρυβο ή να αλλάζει τη σειρά εμφάνισης ανεξάρτητων μεταξύ τους εντολών. Όμως, μια πιο αποτελεσματική τακτική είναι να χρησιμοποιήσει κρυπτογράφηση του κώδικά του με ένα συμμετρικό κλειδί που συνεχώς αλλάζει (Κάτσικας, 2001). Πιο συγκεκριμένα, στην τακτική αυτή ένα τμήμα του ιού, που συνήθως ονομάζεται μηχανή μετάλλαξης (mutating engine), δημιουργεί ένα τυχαίο κλειδί κρυπτογράφησης και κρυπτογραφεί τον υπόλοιπο κώδικα του ιού. Το κλειδί αποθηκεύεται μαζί με τον ιό και η μηχανή μετάλλαξης μεταλλάσσεται η ίδια. Όταν κληθεί το μολυσμένο πρόγραμμα, ο ιός χρησιμοποιεί το αποθηκευμένο κλειδί για να αυτοαποκρυπτογραφηθεί. Όταν ο ιός αναπαραχθεί, δημιουργείται νέο κλειδί.

Σχήμα 3.3 Τύποι ιών

Πέραν των ιών όμως, το περιβάλλον του παγκόσμιου Ιστού παρέχει πρόσφορο έδαφος και σε κακόβουλο λογισμικό τύπου σκουλήκια, και μάλιστα στην πιο επικίνδυνη τους μορφή, αφού αυτά εκμεταλλεύονται ευπάθειες των δικτυακών εφαρμογών που εκτελούνται σε δικτυωμένους υπολογιστές. Τα πλέον ταχύτερα εξαπλούμενα worms (γνωστά και ως scanning worms), εξαπλώνονται μέσω επιθέσεων υπερχείλισης καταχωρητή σε δικτυακές εφαρμογές (Μάγκος, 2013; Ince, 2009). Η υπερχείλιση καταχωρητή (buffer overflow) μπορεί να έχει ποικίλα αποτελέσματα: την κατάρρευση μιας εφαρμογής, ή την εκτέλεση κακόβουλου κώδικα με δικαιώματα που είναι ίδια με τα δικαιώματα της εφαρμογής που υπέστη την υπερχείλιση. Οι επιθέσεις αυτές οφείλονται στη λανθασμένη διαχείριση μνήμης από τους προγραμματιστές εφαρμογών: όταν μια ποσότητα πληροφορίας δίνεται ως είσοδος (input) σε ένα πρόγραμμα, το πρόγραμμα θα πρέπει να ελέγξει αν το μέγεθος της τιμής εισόδου είναι μικρότερο ή ίσο από το μέγεθος της μνήμης που έχει δεσμευτεί για συγκεκριμένη μεταβλητή. Εάν, λόγω κακής συγγραφής του κώδικα, κάτι τέτοιο δεν είναι εφικτό, τότε ένας εισβολέας μπορεί να εκτελέσει, μέσω Διαδικτύου, τον κώδικα της αρεσκείας του.

Αυτό γίνεται δίνοντας ως είσοδο μια ποσότητα πληροφορίας (δεδομένα επικάλυψης συν εκτελέσιμο κώδικα) που υπερβαίνει τη μέγιστη ποσότητα που μπορεί να διαχειριστεί το πρόγραμμα. Το λειτουργικό σύστημα τότε μεταφέρει την «περισσευούμενη» πληροφορία σε γειτονικές θέσεις μνήμης, επικαλύπτοντας (overwriting) εκτός των άλλων τα περιεχόμενα του δείκτη που κανονικά περιέχει τη διεύθυνση της επόμενης εντολής του κυρίως προγράμματος που θα εκτελεστεί. Αν η διεύθυνση αυτή παραπέμπει στον κακόβουλο εκτελέσιμο κώδικα του εισβολέα, τότε η μόλυνση είναι επιτυχής. Αν ο δείκτης δείχνει σε περιοχή μνήμης που δεν περιέχει εκτελέσιμο κώδικα, τότε η εφαρμογή καταρρέει, οπότε έχουμε επιτυχή επίθεση διαθεσιμότητας (Denial of Service, DOS). Ένα scanning worm λοιπόν, στέλνει πακέτα κατάλληλου μεγέθους και περιεχομένου στη θύρα της ευπαθούς εφαρμογής, προκαλεί υπερχείλιση, με αποτέλεσμα την εκτέλεση, στο μηχάνημα-στόχος. κώδικα που περιέχει αντίγραφο του εαυτού του.

Μια άλλη σημαντική παράμετρος, έχει σχέση με το ενεργό – δυναμικό περιεχόμενο των σύγχρονων ιστότοπων. Οι περισσότεροι πλέον δικτυακοί τόποι διαθέτουν πλήθος δυνατοτήτων και αλληλεπίδρασης με τον χρήστη. Η λειτουργικότητα μιας δυναμικής ιστοσελίδας οφείλεται στη χρήση γλωσσών συγγραφής σεναρίων (scripting language) με σκοπό τη δημιουργία κώδικα που εκτελείται στην πλευρά του server (πχ. PHP, ASP, κλπ.) ή του client (πχ. Javascript). Οι τεχνολογίες αυτές, πέρα από τη λειτουργικότητα που προσφέρουν, μπορούν να χρησιμοποιηθούν και για την εκτέλεση κακόβουλου λογισμικού στον υπολογιστή του χρήστη. Σχετικό ζήτημα ευπάθειας (vulnerability) είναι και ‘η «αρθρωτή» δομή του κώδικα που συνηθίζεται πλέον σε περιβάλλοντα παγκόσμιου Ιστού: οι περισσότερες εφαρμογές Ιστού / ιστοσελίδες συνίστανται σε ένα πλήθος από ανεξάρτητα τμήματα (components) κώδικα. Η λειτουργικότητα της εφαρμογής είναι αποτέλεσμα της συνεργασίας μεταξύ των τμημάτων αυτών. Παραδείγματα αρθρωτού κώδικα είναι ακόμη και τα προγράμματα τύπου plug-in που λαμβάνονται και εγκαθίστανται μέσω Διαδικτύου για να βελτιωθεί η λειτουργικότητα των εφαρμογών. Για την αντιμετώπιση κακόβουλου κώδικα που διακινείται μέσω Διαδικτύου, έχουν προταθεί τεχνικές όπως: απομόνωση κώδικα (code isolation – πχ. σε περιβάλλον Java), και η εκτέλεση υπογεγραμμένου κώδικα.

1.2 ¶λλες απειλές ασφαλείας στο περιβάλλον του ηλεκτρονικού εμπορίου

Ηλεκτρονικό ψάρεμα (phising): είναι η προσπάθεια παραπλάνησης που γίνεται από κακόβουλους χρήστες προκειμένου να έρθουν στην κατοχή τους ευαίσθητες πληροφορίες με στόχο την αποκόμιση οικονομικών κερδών (Laudon & Traver, 2014). Διαδεδομένη μορφή επίθεσης ψαρέματος είναι τα πλαστά μηνύματα ηλεκτρονικού ταχυδρομείου που ειδοποιούν ανυποψίαστους χρήστες για μια κληρονομιά, ή για μια κλήρωση που έχει γίνει και αυτοί είναι οι ‘τυχεροί’ ή για μια μεταφορά ενός σημαντικού χρηματικού ποσού στον τραπεζικό λογαριασμό τους κλπ. Στόχος να βρεθούν εύπιστοι χρήστες που θα αποκαλύψουν στοιχεία για τους τραπεζικούς λογαριασμούς τους, ή κωδικούς για την πρόσβαση στους υπολογιστές τους. Η απειλή αυτή δε βασίζεται σε εκτέλεση κακόβουλου κώδικα, αλλά στην εξαπάτηση. Υπάρχει μάλιστα συγκεκριμένος όρος, ‘κοινωνική μηχανική’ (social engineering) για να περιγράψει τις τεχνικές παραποίησης στοιχείων που στοχεύουν στην εξαπάτηση και οι οποίες προσπαθούν να εκμεταλλευτούν την ανθρώπινη ευπιστία (αλλά και την απληστία…..).

Βανδαλισμοί: καταστροφή σελίδων ή ολόκληρου του ιστότοπου ηλεκτρονικού εμπορίου, σκόπιμη διατάραξη της ‘κανονικότητας’ των συναλλαγών είναι δυο από τις βασικότερες μορφές κυβερνοβανδαλισμών. Χρήστες με ικανότητα αφενός εντοπισμού των ρηγμάτων ασφαλείας των ιστότοπων και με στόχο αφετέρου την πρόσβαση σε υπολογιστές και δικτυακούς τόπους, χωρίς να το δικαιούνται (οι αποκαλούμενοι χάκερς), και κυρίως όσοι εξ’ αυτών έχουν παράνομες προθέσεις (οι αποκαλούμενοι κράκερς), είναι η πηγή των ενεργειών αυτών (Ince, 2009). Πολύ σημαντικός επίσης τύπος κυβερνοβανδαλισμού αποτελεί η ‘διαρροή δεδομένων’ ενός οργανισμού, η κλοπή δηλαδή εταιρικών ή και προσωπικών δεδομένων που αυτός περιέχει/διαχειρίζεται, με στόχο την απόκτηση οικονομικών ωφελειών ή απλώς τη δυσφήμιση του οργανισμού ή των χρηστών του (αν πχ. είναι προσωπικές φωτογραφίες διασημοτήτων που αναρτήθηκαν σε λογαριασμούς κοινωνικής δικτύωσης). Πολύ συχνά οι διαρροές δεδομένων οδηγούν σε κλοπή ταυτότητας. Με τον όρο αυτό περιγράφεται η μη εξουσιοδοτημένη χρήση των ευαίσθητων προσωπικών δεδομένων άλλου ατόμου (πχ. κωδικοί πρόσβασης σε μηχανήματα, κωδικοί πρόσβασης σε υπηρεσίες, όπως ο λογαριασμός email του χρήστη, στοιχεία πιστωτικών καρτών, κλπ.) με παράνομα οικονομικά κίνητρα. Μέσω αυτών των πληροφοριών, τις οποίες αποκτούν χρησιμοποιώντας διάφορες τεχνικές που ως τώρα είδαμε (όπως η χρήση κακόβουλου/ανεπιθύμητου κώδικα, το ηλεκτρονικό ψάρεμα), ή τεχνικών που θα δούμε παρακάτω (όπως η κλοπή στοιχείων τραπεζικών καρτών και η παραποίηση), οι παράνομοι χρήστες μπορούν να αγοράζουν προϊόντα και υπηρεσίες χρεώνοντας δικτυακά άλλους. Ειδική μορφή κατηγορίας διαρροής δεδομένων αποτελεί η κλοπή στοιχείων πιστωτικών και χρεωστικών καρτών η οποία και οδηγεί στην πολύ σημαντική απειλή ασφαλείας της απάτης μέσω τραπεζικών καρτών. Αν και παραδοσιακά οι έρευνες δείχνουν ότι σε πολύ μικρά ποσοστά των συνολικών ηλεκτρονικών συναλλαγών με κάρτες γίνεται κλοπή στοιχείων (κάτω από 1%), για τους χρήστες συνεχώς καταγράφεται η σχετική αυτή απειλή ως ένας από τους σπουδαιότερους ανασταλτικούς παράγοντες για τη χρήση καρτών ως μέσο πληρωμής στις συναλλαγές ηλεκτρονικού εμπορίου. Από την άλλη μεριά, ανησυχητικά στοιχεία είναι ότι αυξάνονται τα περιστατικά που έρχονται στη δημοσιότητα των επιθέσεων και τελικά λεηλασιών εταιρικών διακομιστών που διατηρούν πληροφορίες για αγορές χιλιάδων χρηστών μέσω καρτών, καθώς και ότι η καταγεγραμμένη απάτη μέσω πιστωτικών καρτών είναι διπλάσια στο Διαδίκτυο σε σχέση με τα περιστατικά εκτός Διαδικτύου (Laudon & Traver, 2014).

Προσποίηση ή πλαστογράφηση ή παραπλάνηση ή παραποίηση ταυτότητας (spoofing): είναι η απόπειρα απόκρυψης της πραγματικής ταυτότητας ενός χρήστη ή ενός ιστότοπου (ή ενός γενικότερα μηχανήματος) χρησιμοποιώντας μια πλαστή διεύθυνση (e-mail ή URL ή IP). Η πλαστογραφημένη αυτή διεύθυνση προσπαθεί να παραπλανήσει τον χρήστη σχετικά πχ. με το ποιος του έστειλε ένα μήνυμα ηλεκτρονικού ταχυδρομείου ή το ποιος διακομιστής είναι αυτός με τον οποίο έχει συνδεθεί. Με αυτόν τον τρόπο ο χρήστης, επειδή ακριβώς νομίζει ότι συνομιλεί με μια έμπιστη οντότητα (π.χ. με ένα συνάδελφο από τη δουλειά ή με το μηχάνημα της τράπεζας που συναλλάσσεται), αποκαλύπτει ευαίσθητα στοιχεία, όπως είναι τα στοιχεία της πιστωτικής του κάρτας, τα οποία και βεβαίως γίνονται με αυτόν τον τρόπο κτήμα κακόβουλων χρηστών. Αρκετές φορές η παραποίηση της ταυτότητας ενός μηχανήματος γίνεται μέσω αυτόματης ανακατεύθυνσης (pharming) που προκαλεί ένας σύνδεσμος ο οποίος ενώ εμφανίζεται να δείχνει αλλού, τελικά οδηγεί στη διεύθυνση ενός άλλου ιστότοπου (Pfleeger et al., 2015). Έτσι, ο ιστότοπος αυτός προσποιείται και εξαπατά ότι είναι ο σκόπιμος (και αποδεκτός από τον χρήστη) προορισμός, χωρίς βεβαίως να είναι.

Προγράμματα υποκλοπής (sniffers): είναι προγράμματα που καταγράφουν τα δεδομένα που διακινούνται μέσα σε ένα δίκτυο. Οι διαχειριστές δικτύων τα χρησιμοποιούν νόμιμα για να εντοπίσουν αδυναμίες του δικτύου (πχ. σημεία συμφόρησης). Επίσης και προγραμματιστές τα χρησιμοποιούν όταν χρειαστεί να σχεδιαστεί σε ένα κατανεμημένο σύστημα επεξεργασίας η κίνηση των δεδομένων που παράγεται (Ince, 2009). Όταν όμως χρησιμοποιούνται από χρήστες με παράνομα κίνητρα, αποτελούν ισχυρά εργαλεία υποκλοπής ευαίσθητων δεδομένων. Η εγκατάσταση ενός τέτοιου προγράμματος σε ένα στρατηγικό σημείο ενός δικτύου μπορεί να οδηγήσει στην καταγραφή (και αποστολή σε έναν απομακρυσμένο υπολογιστή) εκατοντάδων συνθηματικών μέσα σε λίγες ώρες. Τα προγράμματα υποκλοπής συνθηματικών αποτελούν μια ιδιαίτερα σημαντική απειλή ασφάλειας σε περιβάλλοντα ηλεκτρονικού εμπορίου, καθώς συνδυαζόμενα με τεχνικές παραποίησης οδηγούν σε επιθέσεις τύπου κλοπής ταυτότητας. Οι κακόβουλοι χρήστες χρησιμοποιούν τα προγράμματα υποκλοπής συνθηματικών, μαζί με προγράμματα ανάλυσης συνθηματικών (crackers). Τα προγράμματα αυτά επιχειρούν να βρουν την ταυτότητα του χρήστη που αντιστοιχεί σε κάποια συνθηματικά που διατηρούνται στο αρχείο συνθηματικών (password file) ενός διακομιστή. Και αυτά τα προγράμματα έχουν και μη κακόβουλη χρήση: μέσω αυτών οι διαχειριστές ελέγχουν ότι τα συνθηματικά που επέλεξαν οι χρήστες τους είναι αξιόπιστα. Όμως, είναι πολύ διαδεδομένη και η κακόβουλη χρήση τους (πχ. για την απόκτηση πρόσβασης σε συστήματα όπου οι χρήστες είχαν προφανή συνθηματικά όπως 'system' ή 'admin') (Ince, 2009; Pfleeger et al., 2015). Τα προγράμματα ανάλυσης συνθηματικών συνήθως ελέγχουν ιδιότητες ευπάθειας των συνθηματικών (όπως το μικρό μήκος τους ή τη χρήση μόνο γραμμάτων και όχι ψηφίων). Ακόμη, προσπαθούν να ανακαλύψουν ένα συνθηματικό με βάση ένα μεγάλο κατάλογο λέξεων (λεξικό) που συνηθίζονται να χρησιμοποιούνται ως συνθηματικά. Μια παραλλαγή των προγραμμάτων υποκλοπής είναι τα προγράμματα υποκλοπής emails. Σε μια μορφή τους, αυτήν που χρησιμοποιούν οι κακόβουλοι χρήστες, είναι ένα τμήμα κρυφού κώδικα που ενσωματώνεται σε ένα email, το οποίο επιτρέπει στον αποστολέα του email να παρακολουθεί όλα τα διαδοχικά mails που προωθούνται με το αρχικό mail. Μια άλλη μορφή τους, η σχετικά νόμιμη, είναι αυτή του προγράμματος-κοριός που εγκαθίσταται από τους παρόχους υπηρεσιών Διαδικτύου στους διακομιστές αλληλογραφίας τους (Laudon & Traver, 2014), ώστε να μπορούν να συλλέγουν τα emails ατόμων όταν αυτό ζητηθεί βάσει της ισχύουσας νομοθεσίας (πχ. αίτημα από την αρχή καταπολέμησης ηλεκτρονικού εγκλήματος).

1.3 Απειλές ασφαλείας λόγω κακής σχεδίασης υποστήριξης ‘κινητού’ κώδικα

Τα προγράμματα περιήγησης στον παγκόσμιο Ιστό (browsers) έχουν τη δυνατότητα (εκτός αν ο χρήστης αλλάξει τις ρυθμίσεις ασφαλείας τους) να κατεβάζουν και να εκτελούν αυτόματα λογισμικό, με σκοπό τον εμπλουτισμό της εμφάνισης και γενικότερα της συμπεριφοράς του ιστότοπου. Η ικανότητα αυτή αξιοποίησης του λαμβανόμενου κώδικα (downloading code, βλέπε Κεφ.2, παράγραφος 2.2 - Απειλές σε περιβάλλον Internet), αποκαλείται και ‘ενεργό περιεχόμενο’ (active content). Αρκετά συχνά χρησιμοποιείται αντί του όρου λαμβανόμενος κώδικας, ο όρος '‘κινητός κώδικας'’ (mobile code) παρόλο που μπορεί να δημιουργήσει μια παρανόηση εμπλέκοντας την έννοια της κινητής συσκευής, με την οποία δεν έχει καμία σχέση. Ο όρος κινητός κώδικας σε περιβάλλοντα παγκόσμιου Ιστού αναφέρεται σε προγράμματα (π.χ., script, μακροεντολές) που μπορεί να αποσταλούν αμετάβλητα από τον διακομιστή και να εκτελεστούν στον υπολογιστή του πελάτη (στο πρόγραμμα περιήγησης) χωρίς ρητή εντολή του χρήστη. Ένα συνηθισμένο παράδειγμα τέτοιου κώδικα είναι ο κώδικας JavaScript που εκτελείται τοπικά από το πρόγραμμα περιήγησης Ιστού. Η υποστήριξη κινητού κώδικα είναι ένα από τα χαρακτηριστικά που εντατικά προσπαθούν να αξιοποιούν οι ιστότοποι ηλεκτρονικού εμπορίου, στοχεύοντας σε αύξηση της διαδραστικότητάς τους με τους χρήστες, παροχή δυναμικού περιεχομένου σε αυτούς και γενικότερα στην παροχή ποιοτικότερης ‘εμπειρίας χρήστη’ (user experience). Έτσι όμως, μέσω του κινητού κώδικα, οι μη συνειδητοποιημένοι (ως προς τα προβλήματα ασφαλείας) χρήστες του παγκόσμιου Ιστού, επιτρέπουν την εκτέλεση μη έμπιστου λογισμικού στα μηχανήματά τους (πχ. ιοί, δούρειοι ίπποι, κλπ.). Οι πιο συνηθισμένοι τρόποι αξιοποίησης κινητού κώδικα για κακόβουλες ενέργειες είναι η διατοποθεσιακή δημιουργία δέσμης ενεργειών (cross-site scripting) που θα εξηγήσουμε παρακάτω, η υποστήριξη δυναμικών και ευρείας διάδρασης ιστότοπων, τα συνημμένα του ηλεκτρονικού ταχυδρομείου, και οι λήψεις από αναξιόπιστους ιστότοπους ή λόγω αναξιόπιστου λογισμικού (Stallings, 2014).

Επιπλέον, τα προγράμματα περιήγησης και χωρίς την εκτέλεση κινητού κώδικα, αποτελούν πλέον από μόνα τους ρήγματα ασφαλείας: λόγω του μεγέθους και της πολυπλοκότητάς τους παρουσιάζουν ατέλειες (σημεία ευπάθειας), τις οποίες κακόβουλοι χρήστες αξιοποιούν για να επιτεθούν σε ένα περιβάλλον ηλεκτρονικού εμπορίου, τόσο στο μηχάνημα του πελάτη, όσο και στο μηχάνημα του διακομιστή. Στη δεύτερη βέβαια περίπτωση, χρειάζεται επιπρόσθετα ο εντοπισμός των ευπαθειών στο λογισμικό του διακομιστή του παγκόσμιου Ιστού. Όμως και σε αυτή τη μεριά, αντικρύζουμε παρόμοιες καταστάσεις: το σύγχρονο λογισμικό web server, για να μπορέσει να ανταποκριθεί στις απαιτήσεις υποστήριξης κινητού κώδικα είναι ογκώδες και περίπλοκο, άρα ιδανικό να προσφέρει κενά ασφαλείας προς εκμετάλλευση. Αυτού του τύπου λοιπόν οι απειλές, διακρίνονται στις επιθέσεις που διενεργούνται από την πλευρά του πελάτη (client-side attacks) και αυτές που διενεργούνται από την πλευρά του διακομιστή (server-side attacks).

1.3.1 Επιθέσεις από την πλευρά του πελάτη

Είναι οι επιθέσεις που είτε επωφελούνται από τις αδυναμίες στο λογισμικό που φορτώνεται (mobile code) λόγω του προγράμματος περιήγησης στο μηχάνημα του χρήστη, είτε αυτές που χρησιμοποιούν την εξαπάτηση της κοινωνικής μηχανικής με σκοπό την παραπλάνηση του χρήστη ώστε να ‘συνταχθεί’ χωρίς να το θέλει με την επίθεση.

Cross-site Scripting (XSS):

είναι μια επίθεση που πραγματοποιείται τοποθετώντας κώδικα με τη μορφή μιας γλώσσας σεναρίου (scripting language), πχ. JavaScript, μέσα σε ένα αρχείο ιστοσελίδας (ή σε ένα άλλο αρχείο, πχ. πολυμέσων, από αυτά που μπορεί να ‘ερμηνεύει’ και παρουσιάσει το πρόγραμμα περιήγησης). Όταν κάποιος χρήστης προβάλλει την ιστοσελίδα (ή το πολυμεσικό αρχείο), εκτελεί αυτόματα το σενάριο (τη δέσμη ενεργειών) του κώδικα και πραγματοποιείται η επίθεση (Stallings, 2014; Stallings, 2014b). Παράδειγμα τέτοιας επίθεσης είναι η αξιοποίηση από έναν κακόβουλο χρήστη του τμήματος σχολίων ενός blog, όπου εισάγει το script επίθεσης (Anders, 2011). Κάθε επισκέπτης του blog που διαβάζει το σχόλιο μέσω του προγράμματος περιήγησης θα εκτελέσει τον κώδικα επίθεσης στο μηχάνημά του.

Cross-site Request Forgery (XSRF):

η (διατοποθεσιακή) επίθεση πλαστογραφίας αιτήματος είναι παρόμοια με την επίθεση XSS. Ο επίδοξος εισβολέας τοποθετεί συνδέσμους (links), σε μια ιστοσελίδα με τέτοιον τρόπο ώστε αυτοί να εκτελούνται αυτόματα. Σκοπός είναι μέσω της ανακατεύθυνσης αυτής, να γίνει η εκκίνηση μιας συγκεκριμένης δραστηριότητας σε κάποια άλλη ιστοσελίδα ή εφαρμογή. Ένας τέτοιος σύνδεσμος μπορεί να προκαλέσει για παράδειγμα στο πρόγραμμα περιήγησης την πρόσθεση προϊόντων σε ένα καλάθι αγορών. Επικίνδυνη κατάσταση επίσης είναι η ακόλουθη: κάποιος χρήστης που έχει πιστοποιήσει την ταυτότητά του σε μια έμπιστη ιστοσελίδα, καθώς διατηρεί ταυτόχρονα ανοικτές αρκετές σελίδες στο πρόγραμμα περιήγησης, αν κάποια από αυτές ‘φιλοξενεί’ επικίνδυνους συνδέσμους τύπου XSRF, τότε ο χρήστης επιτρέπει (χωρίς να το γνωρίζει) την εκτέλεση της επίθεσης στο παρασκήνιο (Anders, 2011).

Click jacking:

είναι μια επίθεση που εκμεταλλεύεται τις δυνατότητες γραφικής απεικόνισης του προγράμματος περιήγησης για να παραπλανήσει τον χρήστη να κάνει κλικ σε κάτι που διαφορετικά δε θα επέλεγε να το κάνει. Οι επιθέσεις clickjacking γίνονται τοποθετώντας ένα άλλο στρώμα πάνω από την ιστοσελίδα, ή από τμήματα της ιστοσελίδας, για να μην είναι καθαρό τι πραγματικά κάνουν κλικ. Για παράδειγμα, ο επίδοξος εισβολέας θα μπορούσε να κρύψει ένα κουμπί που λέει "συμφωνώ στην αγορά" κάτω από ένα άλλο στρώμα με ένα κουμπί που λέει απλώς "περισσότερες πληροφορίες".

1.3.2 Επιθέσεις από την πλευρά του διακομιστή

Στην πλευρά του διακομιστή μιας Web συναλλαγής, πολλά προβλήματα και τρωτά σημεία μπορούν να προκύψουν. Πολλά από αυτά εξαρτώνται από το λειτουργικό σύστημα, το λογισμικό διακομιστή Web, τις διάφορες εκδόσεις των scripting γλωσσών και πολλούς άλλους παράγοντες. Υπάρχουν όμως και αρκετοί κοινοί παράγοντες. Πέρα από όλα αυτά, ωστόσο, είναι αρκετοί παράγοντες που ευθύνονται για πολλά θέματα ασφαλείας που είναι κοινά σε όλη τις διάφορες εφαρμογές που ενδέχεται να συναντήσουμε.

Έλλειψη επικύρωσης εισόδου: ένα ενδεικτικό παράδειγμα του τι μπορεί να συμβεί αν λόγω κακού σχεδιασμού δε γίνονται οι κατάλληλοι έλεγχοι επικύρωσης κατά την είσοδο δεδομένων σε φόρμες που βρίσκονται σε ιστότοπους, είναι η έκχυση SQL (SQL injection). Στην περίπτωση των βάσεων δεδομένων που συνδέονται με εφαρμογές ηλεκτρονικού εμπορίου στον Ιστό, η εισαγωγή ειδικά δημιουργημένων δεδομένων σε φόρμες Web, ικανών να αλληλοεπιδρούν με αυτές, μπορεί μερικές φορές να παράγει αποτελέσματα που δεν προβλέπονται από τους προγραμματιστές των εφαρμογών. Το μη σωστό φιλτράρισμα των δεδομένων που εισάγει ένας χρήστης σε μια ιστοσελίδα, μπορεί να γεμίσει τα συστήματα μιας επιχείρησης με κακόβουλο λογισμικό (Anders, 2011; Laudon & Traver, 2014). Σε αρκετές περιπτώσεις, η απομάκρυνση ειδικών χαρακτήρων (πχ. του ‘*’ ή του ‘%’) είναι ένα αποτελεσματικό αντίμετρο σε τέτοιου τύπου επιθέσεις.

Απόδοση ανάρμοστων δικαιωμάτων: στο μηχάνημα του διακομιστή, υπάρχουν ευαίσθητα αρχεία (όπως τα αρχεία ρύθμισης παραμέτρων, configuration files) και φάκελοι αρχείων που η έκθεσή τους σε χρήστες πέραν των υπεύθυνων διαχειριστών μπορεί να δημιουργήσει ζητήματα ασφαλείας. Σε ιστότοπους ηλεκτρονικού εμπορίου, είναι συχνή η ύπαρξη αρχείων ρυθμίσεων που διατηρούν τις πληροφορίες σύνδεσης των εφαρμογών Ιστού με την υποκείμενη βάση δεδομένων. Η μη σωστή διασφάλιση των αρχείων αυτών αποτελεί ουσιαστικά μια διευκόλυνση για όλους τους επίδοξους εισβολείς (Anders, 2011). Να τονιστεί ότι αρκετές φορές δεν είναι ζήτημα κακού σχεδιασμού αλλά αποτέλεσμα σοβαρής αμέλειας: κατά τη μετάβαση ενός διακομιστή Ιστού από την κατάσταση ανάπτυξης λογισμικού στην πλήρη λειτουργία και σύνδεσή του στο Διαδίκτυο, αφήνονται να υπάρχουν (και δεν καθαρίζονται όπως θα έπρεπε) αρχεία που δε συνδέονται με την εύρυθμη λειτουργία του ιστότοπου (πχ. αρχεία πηγαίου κώδικα, αρχεία κειμένου με κρίσιμης σημασίας σημειώσεις κλπ.). Τα αρχεία αυτά αποτελούν πολύτιμο υλικό για όποιον κακόβουλο χρήστη επιθυμεί να παραβιάσει τη σωστή λειτουργία του ιστότοπου.

2. Έλεγχος Προσπέλασης και Πολιτικές Εξουσιοδοτήσεων

Ένα τυπικό σύστημα ελέγχου προσπέλασης περιλαμβάνει υποκείμενα (subjects) που προσπελαύνουν αντικείμενα (οbjects) διαμέσου κατάλληλων χειρισμών (οperatiοns) (Sandhu, 1998). Η θεμελιώδης κατεύθυνση των ελέγχων προσπέλασης, δηλαδή οι αρχές (principles) και οι οδηγίες υψηλού επιπέδου (high leνel guidelines) που αφορούν τη σχεδίαση και τη διαχείριση των συστημάτων ελέγχου προσπέλασης, προέρχονται από την πολιτική ασφάλειας (security pοlicy) του συστήματος, η οποία και προσπαθεί να δώσει τις κατάλληλες λύσεις σε όλες τις καταγεγραμμένες απαιτήσεις ασφάλειας (Cherdantseva & Hilton, 2013). Υπάρχουν διάφορες πολιτικές, γιατί υπάρχουν διάφορες απαιτήσεις προστασίας. Ο όρος μηχανισμοί ελέγχου προσπέλασης χρησιμοποιείται για όλες τις χαμηλού επιπέδου λειτουργίες λογισμικού και υλικού που μπορούν να διαμορφώνονται κατάλληλα για την υλοποίηση μιας πολιτικής ασφάλειας (Sandhu & Samarati, 1997).

Είναι κοινώς αποδεκτό ότι δεν υπάρχουν “καλύτερες” και “χειρότερες” πολιτικές ελέγχου προσπέλασης. Αυτό οφείλεται στο ότι δεν έχουν όλα τα συστήματα τις ίδιες απαιτήσεις προστασίας. Έτσι, πολιτικές κατάλληλες για ένα δεδομένο σύστημα είναι πολύ πιθανό να είναι ακατάλληλες για κάποιο άλλο. Ως γενική λοιπόν αρχή ισχύει ότι η επιλογή πολιτικής εξαρτάται από τα επιμέρους χαρακτηριστικά του περιβάλλοντος που πρόκειται να προστατευθεί (Γεωργιάδης, 2002). Οι κύριες κατηγορίες πολιτικών ελέγχου προσπέλασης, δηλαδή τα μοντέλα που έχουν προταθεί έως σήμερα και τα οποία συνήθως χρησιμοποιούνται, είναι το κατά-διάκριση (discretionary, DAC) μοντέλο, το κατά-απαίτηση (mandatory, MAC) μοντέλο και το βασισμένο-σε-ρόλους (role-based, RBAC) μοντέλο. Παραδοσιακά, οι πολιτικές ελέγχου προσπέλασης κατατάσσονταν στα πρώτα δυο μοντέλα. Η ανάγκη όμως που θέτει το περιβάλλον του παγκόσμιου Ιστού για υποστήριξη μεγαλύτερης γκάμας εφαρμογών/λειτουργιών, μέσω του συνδυασμού χαρακτηριστικών και από τις δυο κατηγορίες ή ακόμη και μέσω της εισαγωγής νέων, οδήγησε στην εμφάνιση νέων μοντέλων που είτε ήδη απολαμβάνουν ευρείας αναγνώρισης, όπως το μοντέλο RBAC, είτε - εστιάζοντας στην ανάγκη αξιοποίησης των ‘συναφών’ πληροφοριών (context) - βρίσκονται στο αρχικό ακόμη στάδιο της ανάπτυξής τους.

2.1 Κατά-διάκριση έλεγχος προσπέλασης (μοντέλο DAC)

Το μοντέλο DAC αφήνει την ευθύνη ανάθεσης και ανάκλησης των προνομίων ελέγχου προσπέλασης στη διακριτική ευχέρεια μεμονωμένων χρηστών, οι οποίοι και καλούνται “«κάτοχοι» ” (owners) των αντικειμένων που έχουν υπό τον έλεγχό τους (Gollmann, 2011). Η κατοχή συνήθως αποκτάται ως επακόλουθο της δημιουργίας των αντικειμένων. Ο περιορισμός της προσπέλασης σε αντικείμενα, βασίζεται στην ταυτότητα των υποκειμένων και/ή στις ομάδες όπου αυτά ανήκουν. Στο μοντέλο DAC, όλα τα υποκείμενα και τα αντικείμενα του συστήματος απαριθμούνται, ενώ διευκρινίζονται και όλες οι εξουσιοδοτήσεις προσπέλασης για κάθε υποκείμενο και κάθε αντικείμενο. Αναλυτικότερα, οι βασικές έννοιες είναι οι εξής: •

Στη περίπτωση αντίστοιχα που στην υποδομή μιας εφαρμογής ηλεκτρονικού εμπορίου βρίσκεται μια σχεσιακή βάση δεδομένων για υποστήριξη Web-based λειτουργιών, το O είναι ένα πεπερασμένο σύνολο τιμών {o1, o2, …, on}, που παριστάνουν ένα σχεσιακό σχήμα (πχ. πίνακες δεδομένων ή όψεις αυτών), και το S είναι ένα πεπερασμένο σύνολο πιθανών υποκειμένων {s1, s2, …, sm} που παριστάνουν χρήστες, ομάδες από χρήστες, ή κινήσεις συναλλαγών (transactions) που ενεργούν εκ μέρους των χρηστών. Τα προνόμια προσπέλασης T είναι το σύνολο των λειτουργιών της βάσης δεδομένων, όπως επιλογή (select), εισαγωγή (insert), διαγραφή (delete), ενημέρωση (update), εκτέλεση (execute), ανάθεση (grant) ή ανάκληση (revoke) προνομίου. Οι προϋποθέσεις P καθορίζουν το παράθυρο προσπέλασης (access window) του υποκειμένου s στο αντικείμενο o (Khair, 1996). Μια τετράδα της μορφής < s, ο, t, p > αποτυπώνει τότε έναν κανόνα προσπέλασης (access rule). Κάθε αίτηση χρήστη για προσπέλαση ενός αντικειμένου, αντιπαραβάλλεται με τους προκαθορισμένους κανόνες προσπέλασης. Αν υπάρχει μια εξουσιοδότηση κατάλληλη, η πρόσβαση επιτρέπεται, αλλιώς η αίτηση απορρίπτεται.

2.1.1 Σύνολα χρηστών (User groups)

Το μοντέλο DAC δεν ασχολείται μόνο με ποια μεμονωμένα υποκείμενα μπορούν να προσπελάσουν ποια αντικείμενα, αλλά και με τη συμπεριφορά των ομάδων και των συνόλων υποκειμένων. Σε περιπτώσεις που ένας χρήστης ανήκει σε περισσότερες από μία ομαδοποιήσεις χρηστών, το μοντέλο ελέγχου προσπέλασης μπορεί να καθορίζει ότι το υποκείμενο μπορεί εναλλακτικά: •

Η δεύτερη και η τρίτη από τις παραπάνω πολιτικές υποστηρίζουν τη γνωστή προσέγγιση του “«ελάχιστου προνομίου» ” (least privilege). Oι διαχειριστές έχουν τη δυνατότητα της ομαδοποίησης των χρηστών που λειτουργούν παρόμοια, καθώς και την ανάθεση εξουσιοδοτήσεων σε σχέση με τις ομάδες. Το γεγονός αυτό βελτιώνει την αποδοτικότητα του συστήματος, γιατί ο αριθμός των κανόνων εξουσιοδότησης που πρέπει να διαχειρίζονται μειώνεται δραματικά. Επίσης, δίνεται η δυνατότητα της εφαρμογής καθιερωμένων πολιτικών στους καθορισμούς των ομάδων. Για παράδειγμα, όλοι οι νοσηλευτές κατά τη βάρδια τους ενεργούν παρόμοια, οπότε είναι δυνατό να τους αποδοθεί ένα σύνολο κοινών δικαιωμάτων.

Ο συνολικός αριθμός ομάδων είναι σε λογικά πλαίσια μικρός, γιατί ο αριθμός των διαφορετικών λειτουργιών σε έναν οργανισμό δεν είναι πολύ μεγάλος. Οι ομάδες χρήστη είναι ακόμη μία εφαρμογή της έννοιας της υπονοούμενης εξουσιοδότησης (implied authorization), όπου ένας κανόνας εξουσιοδότησης καθορίζεται βάσει κάποιας σύνθετης δομής (υποκειμένων ή αντικειμένων προσπέλασης) και αποδίδει παρόμοια δικαιώματα σε κάθε συνθετικό στοιχείο (Γεωργιάδης, 2002).

2.1.2 Μορφές Μηχανισμών Ασφάλειας DAC

Οι παραδοσιακοί κατά-διάκριση μηχανισμοί ασφαλείας βασίζονται στη μορφή της λίστας ελέγχου προσπέλασης (access control list). Αυτοί οι μηχανισμοί έχουν την τάση να περιορίζουν τις πολιτικές ελέγχου προσπέλασης στις ικανότητες των μηχανισμών. Μπορούν εύκολα να υλοποιηθούν χρησιμοποιώντας το μοντέλο του πίνακα προσπέλασης (access matrix model, ACM) των Graham-Denning. Σύμφωνα με αυτό, οι κανόνες προσπέλασης διατηρούνται σε ένα πίνακα προσπέλασης, όπου οι γραμμές αναπαριστούν τα υποκείμενα, οι στήλες τα αντικείμενα και τα στοιχεία στην τομή τους περιέχουν τους σχετικούς τρόπους προσπέλασης. Μια παραλλαγή του, το HRU (Harrison, Ruzzo and Ullman) ACM μοντέλο, αποτελεί έναν από τους αξιοσημείωτους εκπροσώπους των μοντέλων DAC. Χρησιμοποιεί ένα σύνολο εντολών το οποίο μπορεί να δημιουργεί και να μεταβάλλει το όλο σχήμα των εξουσιοδοτήσεων. Στο μοντέλο HRU, η επιτευχθείσα ασφάλεια αποτελεί στη γενική περίπτωση ένα όχι πλήρως εκτιμήσιμο μέγεθος (undecidable). Το πρόβλημα αυτό (safety problem) ορίζεται ως η δυνατότητα προσδιορισμού για ένα συγκεκριμένο υποκείμενο να φτάσει να κατέχει ένα συγκεκριμένο προνόμιο, το οποίο δεν κατείχε προηγουμένως.

Αρκετές νέες προσεγγίσεις έχουν προταθεί, για τις οποίες θεωρητικά το προηγούμενο πρόβλημα μπορεί να διευθετηθεί. Οι περισσότερες από αυτές βασίζονται στην έννοια του τύπου ασφάλειας (security type) και περιλαμβάνουν το Schematic Protection Model (SPM), το Typed Access Matrix (TAM) μοντέλο και το Dynamically Typed Access Control (DTAC) μοντέλο. Ενώ τα SPM και TAM υποστηρίζουν τύπους υποκειμένων και αντικειμένων, το DTAC δεν κάνει διακρίσεις ανάμεσα στα υποκείμενα και τα αντικείμενα. Αυτό του το στοιχείο το κάνει περισσότερο κατάλληλο για περιβάλλοντα εναλλαγής των ρόλων υποκειμένων και αντικειμένων, όπως αυτά του παγκόσμιου Ιστού. Δυναμικοί έλεγχοι και στατικές αναλύσεις των διάφορων απόψεων της ασφάλειας του συστήματος, χρησιμοποιούνται για τη διατήρηση ενός σταθερού επιπέδου ασφάλειας. Αυτό το χαρακτηριστικό, κάνει το DTAC ικανό να μοντελοποιήσει μηχανισμούς ασφάλειας βασισμένους-σε-δραστηριότητες. Ομαδοποιώντας οντότητες σε τύπους, το μοντέλο αυτό μπορεί να μειώσει το μέγεθος των πληροφοριών διαμόρφωσης της ασφάλειας και μπορεί επίσης να διευρύνει τις διαχειριστικές λειτουργίες. Όλες αυτές οι επεκτάσεις έχουν αντικειμενικό σκοπό να διευρύνουν την γκάμα των εφαρμογών που μπορούν να υποστηριχθούν από τα βασισμένα-στο-ACM μοντέλα.

2.1.3 Εξουσιοδοτήσεις για τις όψεις (authorizations for views)

Το κατά-διάκριση μοντέλο υποστηρίζεται από τα περισσότερους τύπους συστημάτων βάσεων δεδομένων και βασίζεται στην έννοια των “όψεων” (database views). Οι όψεις είναι οι διαφορετικοί τρόποι απεικόνισης των δεδομένων της βάσης, οι οποίοι προκύπτουν ως αποτέλεσμα της εκτέλεσης ερωτημάτων. Αποκαλούνται και εικονικές σχέσεις, σε αντίθεση με τις υπαρκτές βασικές σχέσεις, δηλαδή τους πίνακες δεδομένων της βάσης. Οι όψεις χρησιμοποιούνται ως μέσο προσαρμογής των βασικών σχέσεων σε συγκεκριμένες ανάγκες, αποσκοπώντας ουσιαστικά στο να προσδώσουν μια “προσωπικού χαρακτήρα” εικόνα-ερμηνεία της βάσης δεδομένων στους χρήστες της.

Οι όψεις μπορούν να αποτελέσουν και βάση μηχανισμών προστασίας. Πρόκειται για την αποκαλούμενη βασισμένη-σε-όψεις προστασία (view-based protection). Ένας χρήστης μπορεί να είναι εξουσιοδοτημένος για μία όψη της βάσης, χωρίς να έχει εξουσιοδότηση για τον πίνακα (ή τους πίνακες) στον οποίο βασίζεται η όψη. Έτσι, η ανάθεση εξουσιοδότησης σε μία όψη αποτελεί ένα μέσο περιορισμού της εξουσιοδότησης σε ένα υποσύνολο των δεδομένων που περιέχονται στους πίνακες δεδομένων. Οι μη υλοποιημένες αυτές ερωτήσεις που βασίζονται στις βασικές σχέσεις καλούνται σχέσεις όψεων (view relations). Οι περιορισμοί ασφάλειας υλοποιούνται μέσω της ενσωμάτωσης κατάλληλων προϋποθέσεων κατά τον ορισμό των όψεων της βάσης δεδομένων. Έτσι, οι στήλες του πίνακα ελέγχου προσπέλασης, αναπαριστούν τις διαθέσιμες όψεις της βάσης.

Ένας άλλος τρόπος εκμετάλλευσης των όψεων σε ζητήματα ασφαλείας, είναι μέσω της προσέγγισης της τροποποίησης των ερωτήσεων (query modification). Στην περίπτωση αυτή, το ερώτημα της αίτησης προσπέλασης του χρήστη μεταβάλλεται μέσω της προσθήκης κατάλληλων προϋποθέσεων που προσδιορίζουν τις απαιτήσεις ασφάλειας.

2.1.4 Μειονεκτήματα του μοντέλου DAC

Παρά τη μεγάλη ευελιξία του κατά-διάκριση μοντέλου, υπάρχει και μια έμφυτη αδυναμία, γνωστή ως το πρόβλημα της αντιγραφής (copy problem). Δηλαδή, οι πληροφορίες μπορεί να αντιγραφούν από το ένα αντικείμενο σε ένα άλλο, ούτως ώστε να καθίσταται δυνατή η πρόσβαση στο αντίγραφο ακόμη και αν ο κάτοχος του πρωτότυπου δεν παρέχει δικαίωμα προσπέλασης στο πρωτότυπο. Τέτοια αντίγραφα μάλιστα, μπορούν να πολλαπλασιάζονται από κακόβουλο λογισμικό, όπως οι Δούρειοι Ίπποι (trojan horses) που αναφέρθηκαν σε προηγούμενη παράγραφο, χωρίς να είναι απαραίτητη η ρητή συνεργασία των χρηστών που διαθέτουν νόμιμες εξουσιοδοτήσεις για τα πρωτότυπα. Τα μοντέλα τύπου DAC δεν προσφέρουν λοιπόν επαρκείς τρόπους διασφάλισης της ροής των πληροφοριών, αφού στην πραγματικότητα καθιστούν τους χρήστες υπεύθυνους για την επιβολή της πολιτικής ασφάλειας, πράγμα που αποτελεί σοβαρότατο ρήγμα ασφάλειας.

Ειδικότερα κατά την εφαρμογή του μοντέλου DAC σε βάσεις δεδομένων, ο έλεγχος της μετάδοσης των εξουσιοδοτήσεων αποτελεί ένα αρκετά σύνθετο πρόβλημα. Έρευνες στον χώρο, καταλήγουν στο ότι οι μηχανισμοί απόδοσης αρνητικών εξουσιοδοτήσεων (negative authorizations), η υποστήριξη των μη-διαδοχικών ανακλήσεων (non-cascading revoke) και η χρήση εξουσιοδοτήσεων χρονοσήμανσης (time-stamped authorizations) μπορούν να υλοποιήσουν (κατά περίπτωση) ευέλικτες πολιτικές επίλυσης των αντικρουόμενων προνομίων προσπέλασης.

2.2 Κατά-απαίτηση έλεγχος προσπέλασης (μοντέλο MAC)

Το μοντέλο MAC παρέχει τα μέσα για τον περιορισμό της προσπέλασης σε αντικείμενα, με βάση τόσο την ευαισθησία (sensitivity) της πληροφορίας που περιέχεται σε αυτά, όσο και την εμπιστευτικότητα (clearance) των υποκειμένων που επιθυμούν να τα προσπελάσουν (Gollmann, 2011). Ετικέτες (labels) ασφάλειας αποδίδονται και στα δεδομένα και στους χρήστες, για την αποτύπωση αντίστοιχα της ευαισθησίας και της εμπιστευτικότητάς τους. Όπως θα περιγραφεί αναλυτικά σε επόμενη παράγραφο, τα κατά-απαίτηση μοντέλα μπορούν να εγγυηθούν μια συγκεκριμένη κατεύθυνση στη ροή των πληροφοριών: με βάση το δικτυωτό (lattice) των ετικετών ασφάλειας, είναι σε θέση να αποτρέπουν τη ροή των πληροφοριών χαμηλής ακεραιότητας προς αντικείμενα υψηλότερης ακεραιότητας, καθώς και τη ροή πληροφοριών υψηλής εμπιστευτικότητας προς αντικείμενα χαμηλότερης εμπιστευτικότητας. Επίσης, φροντίζει ώστε να προστατεύονται τα δεδομένα όχι μόνο από τις άμεσες προσπελάσεις των μη εξουσιοδοτημένων χρηστών, αλλά και από τις έμμεσες διαρροές πληροφοριών, οι οποίες συμβαίνουν είτε μέσω των καναλιών επικάλυψης σημάτων (covert signaling channels), είτε λόγω της έμμεσης προσπέλασης από εξαγωγή συμπερασμάτων (inference) (Gollmann, 2011; Khair, 1996).

2.2.1 Γενική περιγραφή του MAC

Οι κατά-απαίτηση πολιτικές ελέγχου προσπέλασης χρησιμοποιούνται όταν σε ένα σύστημα περιέχονται πληροφορίες με ποικιλία διαβαθμίσεων ασφάλειας (security classifications), και υπάρχουν χρήστες οι οποίοι δεν είναι εξουσιοδοτημένοι για την ανώτατη διαβάθμιση των πληροφοριών που περιέχονται στο σύστημα. Η βασική φιλοσοφία του MAC έχει τις ρίζες της στα στρατιωτικά περιβάλλοντα, όπου είναι κοινή πρακτική η κατηγοριοποίηση των χρηστών και των πληροφοριών (πχ. αδιαβάθμητο, εμπιστευτικό, απόρρητο κλπ.) σε διάφορα επίπεδα ασφαλείας. Για αυτόν τον λόγο χρησιμοποιείται και ο όρος military ως συνώνυμο του mandatory στον έλεγχο προσπέλασης.

Η προσπέλαση πληροφοριών περιορίζεται από την αρχή της αναγκαίας γνώσης. Δηλαδή, η προσπέλαση σε ευαίσθητα δεδομένα επιτρέπεται μόνο σε εκείνα τα υποκείμενα που χρειάζεται να γνωρίζουν αυτά τα δεδομένα προκειμένου να εκτελέσουν τις εργασίες τους. Κάθε ευαίσθητη πληροφορία μπορεί να συσχετιστεί με ένα ή περισσότερα έργα που καλούνται υποδιαιρέσεις (compartments) ή κατηγορίες (categories) και οι οποίες περιγράφουν την αντικειμενική σημασία της πληροφορίας. Μια επέκταση τότε της αρχής need-to-know, η οποία ακολουθεί τους παρακάτω κανόνες, μπορεί να χρησιμοποιηθεί για να καλύψει τη γενική αρχή των ζητημάτων ροής πληροφοριών:

Τα μοντέλα τύπου MAC κάνουν χρήση της προηγούμενης αρχής, συνδυάζοντάς τη με τις δυνατότητες κατάταξης των χρηστών σε επίπεδα εξουσιοδότησης. Έτσι, η βασική ορολογία στους κατά-απαίτηση ελέγχους προσπέλασης είναι:

Τα μοντέλα MAC προϋποθέτουν την απόδοση συγκεκριμένων ετικετών ασφάλειας στα αντικείμενα και τα υποκείμενα. Η ετικέτα ενός αντικειμένου o καλείται τάξη του αντικειμένου (class(o)) και η ετικέτα ενός αντικειμένου s καλείται εξουσιοδότηση του υποκειμένου (clear(s)). Μια ετικέτα ασφάλειας S αποτελείται από δύο στοιχεία:

Τα επίπεδα διαβάθμισης δεδομένων και βαθμού εξουσιοδότησης χρηστών, είναι πλήρως διατεταγμένα σύνολα, ενώ οι ετικέτες που προκύπτουν από αυτά είναι μερικώς διατεταγμένα, λόγω των συνόλων κατηγοριών. Καλείται δικτυωτό (lattice), το πλέγμα που σχηματίζεται από το σύνολο όλων των ετικετών ασφάλειας, στο οποίο δεν είναι συγκρίσιμες μεταξύ τους όλες οι ετικέτες. Μια ετικέτα S1 = (L1, C1) κυριαρχεί (dominates) μιας άλλης ετικέτας S2 = (L2, C2), δηλαδή ισχύει S1 ⊆ S2, αν και μόνον εάν ισχύει L1 ≥ L2 και C2 ≥ C1.

2.2.2 Το μοντέλο εμπιστευτικότητας Bell-La Padula

Οι απαιτήσεις εμπιστευτικότητας του κατά-απαίτηση ελέγχου προσπέλασης εκφράζονται συχνά μέσω του μοντέλου των Bell και LaPadula (BLP), το οποίο περιγράφεται από τους εξής κανόνες (Pfleeger et al., 2015):

  1. Η απλή ιδιότητα (simple property), η οποία προστατεύει τα δεδομένα από μη εξουσιοδοτημένη ανάγνωση (no read-up rule). Σύμφωνα με αυτή το υποκείμενο s επιτρέπεται να διαβάσει τα δεδομένα ο, μόνον εάν clear(s) ⊆ class(o)
  2. H ιδιότητα αστερίσκου (*-property), η οποία προστατεύει τα δεδομένα από νοθεύσεις ή μη εξουσιοδοτημένες μετατροπές περιορίζοντας τη ροή των πληροφοριών από τα ανώτερα προς τα κατώτερα επίπεδα (no write-down rule). Σύμφωνα με αυτή στο υποκείμενο s επιτρέπεται να γράψει το δεδομένο ο, μόνον εάν class(ο) ≥ clear(s).

Ο στόχος του μοντέλου είναι ο προσδιορισμός επιτρεπτών επικοινωνιών όταν βασικό μέλημα είναι η διατήρηση της εμπιστευτικότητας. Όμως παρουσιάζονται προβλήματα ακεραιότητας, επειδή σε έναν χρήστη “από χαμηλά” επιτρέπεται να εισάγει μη-ορθά ενδεχομένως δεδομένα. Για την αντιμετώπιση αυτού του φαινομένου, οι μηχανισμοί του μοντέλου BLP συνδυάζονται με αυτούς που παρέχει το ακόλουθο μοντέλο Biba.

2.2.3 Το μοντέλο ακεραιότητας Biba

Πρόκειται για ένα μοντέλο πρόληψης των μη εξουσιοδοτημένων μεταβολών των δεδομένων, δίδυμο του BLP μοντέλου. Σε αναλογία με τα επίπεδα εμπιστευτικότητάς του BLP, το μοντέλο Biba καθορίζει επίπεδα ακεραιότητας. Υποκείμενα και αντικείμενα ταξινομούνται με ένα σχήμα κατάταξης με σκοπό την ακεραιότητα των δεδομένων. Σημειώνοντας ως Ι(s) και Ι(ο) τις ετικέτες ακεραιότητας αντίστοιχα των υποκειμένων και των αντικειμένων, οι κανόνες που επιβάλει το μοντέλο Biba είναι (Pfleeger et al., 2015):

  1. Η απλή ιδιότητα ακεραιότητας (simple integrity property), η οποία προστατεύει τα δεδομένα από μη εξουσιοδοτημένη μεταβολή (no write-up rule). Σύμφωνα με αυτή το υποκείμενο s επιτρέπεται να μεταβάλλει το αντικείμενο ο, μόνον εάν Ι(s) ≥ Ι(o).
  2. H ιδιότητα αστερίσκου ακεραιότητας (integrity *-property), καλείται και no read-down rule. Σύμφωνα με αυτή, εάν ένα υποκείμενο s, έχει δικαίωμα ανάγνωσης σε ένα αντικείμενο ο, τότε το s επιτρέπεται να μεταβάλλει ένα άλλο αντικείμενο k, μόνον εάν Ι(ο) ≥ Ι(k).

Οι ιδιότητες αυτές εκφράζουν δυο βασικές αλήθειες αναφορικά με την αξιοπιστία των πληροφοριών. Η πρώτη αφορά την περίπτωση που ένα αναξιόπιστο υποκείμενο μεταβάλλοντας ένα αντικείμενο, ουσιαστικά προκαλεί μείωση της ακεραιότητας αυτού του αντικειμένου. Η δεύτερη αφορά το ότι χαμηλού επιπέδου ακεραιότητα ενός αντικειμένου, συνεπάγεται και χαμηλή ακεραιότητα για κάθε άλλο αντικείμενο που βασίζεται σε αυτό. Το μοντέλο Biba αγνοεί τις απαιτήσεις εμπιστευτικότητας, όμως η τάση είναι να αντιμετωπίζονται ταυτόχρονα τα ζητήματα μυστικότητας και ακεραιότητας μέσω του συνδυασμού των μοντέλων BLP και Biba.

2.2.4 Έλεγχος προσπέλασης πολλαπλών επιπέδων

Η υποστήριξη κατά-απαίτηση ελέγχων προσπέλασης στις βάσεις δεδομένων, οδηγεί στις βάσεις πολλαπλών επιπέδων ασφάλειας (multi-level security, MLS). Σε αυτές, οι πίνακες δεδομένων είναι δυνατόν να εμφανίζονται διαφορετικοί σε χρήστες με διαφορετικούς βαθμούς εξουσιοδότησης. Αυτό οφείλεται στο ότι συνήθως όλοι οι βαθμοί εξουσιοδότησης δεν επιτρέπουν σε όλα τα υποκείμενα να έχουν προσπέλαση σε όλα τα αντικείμενα. Πραγματικά, η ανάγκη για μια πολιτική ελέγχου προσπέλασης πολλαπλών επιπέδων, προκύπτει όταν η βάση περιέχει πληροφορίες με διαφορετικούς βαθμούς διαβάθμισης (εμπιστευτικότητας) και οι χρήστες κατατάσσονται σε διαφορετικούς βαθμούς εξουσιοδότησης. Σε συστήματα με υψηλές ανάγκες ασφάλειας, η προστασία των εμπιστευτικών πληροφοριών οφείλει να αφορά όχι μόνο τις προσπάθειες άμεσης προσπέλασης, αλλά και αυτές της έμμεσης, καλύπτοντας όλες τις πιθανές ροές πληροφοριών. Οι MLS βάσεις δεδομένων διαθέτουν τους κατάλληλους μηχανισμούς για την επίτευξη αυτών των στόχων.

Η απλούστερη τεχνική αποκάλυψης πληροφοριών από εξουσιοδοτημένο χρήστη είναι η ανάκτηση τους, η αντιγραφή τους σε ένα αντικείμενο που του ανήκει και η διάθεση του αντίγραφου σε άλλα άτομα. Για να αποφευχθεί αυτό, είναι απαραίτητο να ελέγχεται η ικανότητα του εξουσιοδοτημένου χρήστη να δημιουργεί αντίγραφα. Δηλαδή για παράδειγμα, όταν μία κίνηση έχει ολοκληρώσει μια προσπάθεια ανάγνωσης, το σύστημα προστασίας πρέπει να εξασφαλίζει ότι δεν έγινε εγγραφή σε κατώτερο επίπεδο ασφάλειας από τον χρήστη που είναι εξουσιοδοτημένος να εκτελεί κίνηση ανάγνωσης. Σε μια MLS βάση, οι έλεγχοι εγγραφής και ανάγνωσης που εφαρμόζονται βασίζονται στους κατά-απαίτηση κανόνες των μοντέλων BLP και Biba, οπότε όπως ήδη αναφέρθηκε, μπορεί να ελεγχθεί αποτελεσματικά η ροή των πληροφοριών μεταξύ των υποκειμένων με διαφορετικούς βαθμούς εξουσιοδότησης.

Ο κατά-απαίτηση έλεγχος προσπέλασης στηρίζεται στις ετικέτες ασφάλειας των δεδομένων, για αυτό και καλείται και βασισμένος-σε-ετικέτες (label-based) έλεγχος προσπέλασης. Υπάρχουν δυο τρόποι εκχώρησης επιπέδων διαβάθμισης στα δεδομένα. Ο πρώτος απονέμει τα επίπεδα εμπιστευτικότητας ανά πίνακα δεδομένων. Η προσέγγιση αυτή παρουσιάζει το μικρότερο δυνατό επίπεδο διακριτότητας, για αυτό και τις περισσότερες φορές οδηγεί σε μη ευέλικτες λύσεις. Ο δεύτερος τρόπος διαβαθμίζει τα δεδομένα, εξετάζοντάς τα ανάλογα με το επιθυμητό επίπεδο λεπτομέρειας σε επίπεδο εγγραφής (tuple), στήλης (attribute), ή ακόμη και μεμονωμένου στοιχείου. Ένα παράδειγμα πολλαπλών επιπέδων σχέσης (πίνακα δεδομένων) είναι:

R (a1, c1, a2, c2, a3, a4, c34, a5, c5, ct)

Στη σχέση αυτή, η στήλη a1 έχει επίπεδο διαβάθμισης c1, η a2 έχει c2, οι στήλες a3 και a4 έχουν διαβάθμιση c34, η στήλη a5 έχει c5, ενώ το επίπεδο διαβάθμισης ολόκληρης της εγγραφής είναι ct.

Οι MLS σχέσεις δεδομένων, επηρεάζουν τη ίδια τη δομή του σχεσιακού μοντέλου, λόγω του ότι δεν είναι όλα τα δεδομένα διαθέσιμα σε όλους τους χρήστες. Μια σημαντική επίδραση είναι η ύπαρξη των αποκαλούμενων πολυστιγμιότυπων (polyinstantiation)

2.2.5 Πολυστιγμιότυπα

Είναι η ταυτόχρονη ύπαρξη στη βάση, αντικειμένων δεδομένων τα οποία έχουν ίδιο όνομα αλλά διαφορετικά επίπεδα διαβάθμισης (Γεωργιάδης, 2002). Μπορούν να προκύψουν σε πολλές διαφορετικές περιπτώσεις: όταν ένας χρήστης με κατώτερο βαθμό εξουσιοδότησης προσπαθεί να εισάγει μία εγγραφή που υπάρχει ήδη σε κάποιο ανώτερο επίπεδο, ή όταν ένας χρήστης επιθυμεί να μεταβάλλει τιμές σε κατώτερα διαβαθμισμένες εγγραφές. Τα πολυστιγμιότυπα αφορούν είτε ολόκληρες οντότητες (polyinstantiated entities), είτε ιδιότητες των οντοτήτων (polyinstantiated attributes of entities). Υπάρχουν δύο ακραίες θέσεις για τα πολυστιγμιότυπα:

  1. Τα πολυστιγμιότυπα είναι ένα αναπόφευκτο φαινόμενο των δεδομένων πολλαπλών επίπεδων. Tο πρόβλημα είναι η εύρεση ενός βέλτιστου τρόπου χειρισμού των πλαστών εγγραφών.
  2. Τα πολυστιγμιότυπα δε συμβαδίζουν λειτουργικά με την ακεραιότητα. Τα πολυστιγμιότυπα δεν πρέπει να είναι αποδεκτά από ένα σύστημα, γιατί θα μπορούσαν να εμποδίσουν τη σωστή διεκπεραίωση κάποιας εργασίας. Πρέπει να βρεθούν λύσεις αποφυγής του φαινομένου.

Η αλήθεια ίσως βρίσκεται κάπου ενδιάμεσα. Οι Jajodia και Sandhu έχουν υποδείξει τον τρόπο με τον οποίο μπορεί να εμποδιστεί με ασφάλεια η ύπαρξη πολυστιγμιοτύπων (δηλαδή, χωρίς τη διαρροή απόρρητων πληροφοριών ή άρνησης εξυπηρέτησης). Έτσι, όταν το φαινόμενο είναι ανεπιθύμητο, είναι δυνατό να απαλλαγούμε πλήρως από αυτό. Συνοπτικά, δεν υπάρχει θεμελιώδης ασυμβατότητα μεταξύ της ύπαρξης πολυστιγμιοτύπων και της ακεραιότητας, εφόσον η χρησιμότητά τους είναι αδιαμφισβήτητη κυρίως όταν σκόπιμα επιζητείται επικάλυψη των πληροφοριών (cover stories), όπως συμβαίνει όταν δεν πρέπει να δίνονται στους χρήστες με κατώτερους βαθμούς εξουσιοδότησης οι σωστές τιμές ορισμένων δεδομένων. Είναι η περίπτωση που τα πολυστιγμιότυπα δημιουργούνται σκόπιμα για να παρέχονται στους μη εξουσιοδοτημένους χρήστες αληθοφανείς εξηγήσεις για πληροφορίες που αναπόφευκτα πέφτουν στην αντίληψη τους και θα μπορούσαν αλλιώς να οδηγήσουν σε μερική ή ολική έμμεση προσπέλαση ευαίσθητων πληροφοριών.

2.2.6 Λειτουργικότητα των βάσεων δεδομένων πολλαπλών επιπέδων

Η χρησιμοποίηση κατά-απαίτηση ελέγχων προσπέλασης σε μια βάση δεδομένων, οδηγεί σε μία επέκταση του καθιερωμένου σχεσιακού μοντέλου δεδομένων, έτσι ώστε τα μεμονωμένα στοιχεία δεδομένων μιας σχέσης να μπορούν να περιλαμβάνουν τη διαβάθμισή τους. Επιπλέον, και κάθε ολόκληρη εγγραφή μπορεί και πρέπει να έχει μία ετικέτα διαβάθμισης, η οποία συνήθως για τις εγγραφές που ανήκουν σε ένα πίνακα δεδομένων, είναι το κατώτερο από τα άνω όρια των ετικετών των μεμονωμένων στοιχείων της εγγραφής. Κάθε πραγματική σχέση (πίνακας δεδομένων) έχει ένα πρωτεύον κλειδί που έχει καθοριστεί για αυτή, και το οποίο αποτελείται είτε από ένα χαρακτηριστικό (attribute) είτε από ένα όμοια διαβαθμισμένο σύνολο χαρακτηριστικών.

Τα πολυστιγμιότυπα είναι διαφορετικές εκδόσεις της ίδιας πραγματικής οντότητας μιας σχέσης σε μία βάση δεδομένων, που παριστάνουν το τι είναι γνωστό σε χρήστες με διαφορετικούς βαθμούς εξουσιοδότησης. Οι πληροφορίες της εγγραφής, που προσδιορίζουν μια οντότητα (εγγραφή) σε ένα πίνακα, είναι ο συνδυασμός της τιμής και της διαβάθμισης του πρωτεύοντος κλειδιού. Τα πολυστιγμιότυπα των εγγραφών παριστάνουν διαφορετικές πραγματικές οντότητες, που έχουν το ίδιο πρωτεύον κλειδί, αλλά διαφορετικές διαβαθμίσεις του πρωτεύοντος κλειδιού. Τα πολυστιγμιότυπα στοιχείων αναφέρονται όλα στην ίδια πραγματική οντότητα και παριστάνονται με ένα σύνολο εγγραφών, που έχουν όλες την ίδια τιμή και την ίδια διαβάθμιση πρωτεύοντος κλειδιού. Πέρα από το ζήτημα της αντιμετώπισης των πολυστιγμιότυπων, οι κυριότεροι περιορισμοί σε μια βάση που υιοθετεί κατά-απαίτηση μηχανισμούς είναι: •

2.3 Απόδοση προνομίων βάσει ρόλων (RBAC)

Ένας ρόλος (role) είναι ένα σύνολο από ενέργειες και ευθύνες, που έχουν σχέση με τη συγκεκριμένη λειτουργία ενός οργανισμού. Κάθε μεμονωμένο άτομο μπορεί να λειτουργήσει με ένα ή και περισσότερους ρόλους. Ο διαχωρισμός (με σκοπό τον έλεγχο προσπέλασης) των χρηστών από τους ρόλους τους, προσφέρει ευελιξία στους τρόπους συνδυασμού των χρηστών και των ρόλων. Επιτρέπει στους χρήστες να λειτουργούν ως κάποιος ρόλος, χωρίς αυτό να επηρεάζει άλλες δραστηριότητες τους που εξαρτώνται από άλλους ρόλους. Επομένως, ο καθορισμός των κανόνων προσπέλασης στα δεδομένα μπορεί να υλοποιηθεί ανεξάρτητα από τα συγκεκριμένα άτομα που έχουν σχέση με τον οργανισμό. Αρχικά, η υποστήριξη των ρόλων των χρηστών εντασσόταν στα κατά-διάκριση μοντέλα ως προσέγγιση ελέγχου προσπέλασης, αφού ο ρόλος αντιμετωπιζόταν καθαρά ως ένα σύνολο, μια ομαδοποίηση χρηστών (user group). Η κατάσταση αυτή άλλαξε με την έλευση-διατύπωση του αποκαλούμενου βασισμένου-σε-ρόλους ελέγχου προσπέλασης (role-based access control, RBAC). Το μοντέλο αυτό (Sandhu, 1998), κάνει χρήση της (ευρέως χρησιμοποιούμενης από πολλά χρόνια) έννοιας του ρόλου χρήστη (user role), την οποία αναβαθμίζει μέσω ενός ισχυρού φορμαλισμού που συνδυάζει επιπρόσθετα χαρακτηριστικά όπως οι ιεραρχίες ρόλων και οι περιορισμοί.

Το μοντέλο RBAC είναι ουδέτερο πολιτικής (policy neutral). Επιτρέπει να παραχωρείται σε χρήστες ο προσδιορισμός των εξουσιοδοτήσεων σε αντικείμενα (όπως στις κατά-διάκριση πολιτικές ελέγχου), και επιπλέον μπορεί να επιβάλλει περιορισμούς, είτε άμεσα, είτε μέσω των ιεραρχιών των ρόλων, στη χρήση τέτοιων εξουσιοδοτήσεων με σκοπό τον έλεγχο ροής πληροφοριών (όπως στις κατά-απαίτηση πολιτικές ελέγχου). Ο έλεγχος προσπέλασης που τελικά επιβάλλεται σε ένα σύστημα, είναι το αποτέλεσμα της κατάλληλης διαμόρφωσης των επιμέρους μηχανισμών του RBAC (Sandhu & Samarati, 1997). Έτσι, τα μοντέλα τύπου RBAC απολαμβάνουν συνεχώς αυξανόμενης προσοχής ως μια πολλά υποσχόμενη προσέγγιση για επέκταση των παραδοσιακών μοντέλων MAC και DAC.

Με το RBAC, οι αποφάσεις προσπέλασης στηρίζονται στους ρόλους που οι μεμονωμένοι χρήστες αναλαμβάνουν στα πλαίσια ενός οργανισμού. Η διαδικασία καθορισμού των ρόλων βασίζεται σε μια λεπτομερή ανάλυση του τρόπου λειτουργίας του οργανισμού, συμπεριλαμβάνοντας στοιχεία προερχόμενα από όσο το δυνατόν ευρύτερο φάσμα χρηστών. Τα δικαιώματα προσπέλασης ομαδοποιούνται “κάτω” από κοινά ονόματα (τα ονόματα των ρόλων), και η χρήση των αντικειμένων-δεδομένων περιορίζεται μόνο σε όσα υποκείμενα-χρήστες είναι εξουσιοδοτημένα να αναλαμβάνουν τους αντίστοιχους ρόλους. Έτσι για παράδειγμα, σε ένα νοσοκομείο ο ρόλος του θεράποντος ιατρού μπορεί να περιλαμβάνει λειτουργίες όπως η διατύπωση διαγνώσεων, η παραγγελία εργαστηριακών εξετάσεων, ο προσδιορισμός της φαρμακευτικής αγωγής κλπ., ενώ ο ρόλος του ερευνητή ιατρού μπορεί να περιορίζεται στη συλλογή ανώνυμων κλινικών δεδομένων με σκοπό την ανάλυση και μελέτη τους.

Η προσέγγιση αυτή προσφέρει σημαντικότατα πλεονεκτήματα σε διαχειριστικά ζητήματα.

Αρχικά, το RBAC προσφέρει δυνατότητες εφαρμογής κεντρικού ελέγχου και διαχείρισης των δικαιωμάτων προσπέλασης, σύμφωνα με τις κατευθυντήριες οδηγίες προστασίας του οργανισμού. Αυτό είναι κάτι που συμβαδίζει με τις επιθυμίες των περισσότερων οργανισμών, αφού θεωρούν ότι οι τελικοί χρήστες στους οποίους επιτρέπεται η προσπέλαση σε πληροφορίες, δεν είναι και οι κάτοχοι των πληροφοριών αυτών (όπως συχνά υπονοεί η επιβολή κατά-διάκριση μηχανισμών ελέγχου). Αντίθετα, αποζητούν μηχανισμούς που καθιστούν τους ίδιους τους οργανισμούς, τους πραγματικούς ιδιοκτήτες των πληροφοριών αυτών (Sandhu, 1998).

Έπειτα, το κόστος και η πολυπλοκότητα της διαχείρισης ασφάλειας μειώνεται σε μεγάλο βαθμό. Σε κάθε χρήστη αναθέτονται ένας ή περισσότεροι ρόλοι και σε κάθε ρόλο εκχωρούνται μια ή περισσότερες άδειες προσπέλασης, οι οποίες και μπορούν να χρησιμοποιηθούν από τους χρήστες που αναλαμβάνουν τον συγκεκριμένο ρόλο. Η διαχείριση ασφάλειας έχει λοιπόν ως έργο τον προσδιορισμό των εργασιών που επιτρέπεται να εκτελούν οι χρήστες οι οποίοι λειτουργούν ως συγκεκριμένοι ρόλοι του οργανισμού και συνεπώς τον καθορισμό των αδειών που εκχωρούνται στους ρόλους αυτούς. Επιπρόσθετα, οφείλει να επιβλέπει την εκχώρηση των κατάλληλων ρόλων σε κάθε χρήστη. Να σημειωθεί ότι οι άδειες (permissions) στο RBAC είναι οι εγκρίσεις για επιμέρους τρόπους προσπέλασης αντικειμένων, για αυτό και είναι πάντοτε θετικές. Ισοδύναμα με τον όρο άδειες, χρησιμοποιούνται οι όροι προνόμια (privileges), δικαιώματα προσπέλασης (access rights) και εξουσιοδοτήσεις (authorizations).

Οι ρόλοι εκχωρούνται στους χρήστες βάσει των ειδικοτήτων τους (ικανότητες, εμπειρία) και των αρμοδιοτήτων τους (υπευθυνότητες που ανέλαβαν). Οι μεταβολές στις αντιστοιχίες ρόλων με χρήστες, που υπαγορεύονται από τις αλλαγές στην ανάθεση των εργασιών ενός οργανισμού, δεν αποτελούν πρόβλημα. Πράγματι, η εκχώρηση ενός ρόλου σε ένα χρήστη μπορεί να ανακληθεί εύκολα, όπως εύκολα διευθετείται και το αντίστροφο, δηλαδή το να εκχωρηθούν σε αυτόν νέοι ρόλοι. Ακόμη, όταν καθιερώνονται νέου τύπου δράσεις σε έναν οργανισμό, νέοι ρόλοι μπορούν εύκολα να δημιουργηθούν, και καθώς οι οργανωτικές λειτουργίες αλλάζουν και εξελίσσονται οι χωρίς λόγο ύπαρξης δράσεις-ρόλοι μπορούν να διαγραφούν χωρίς δυσκολία. Οι ρόλοι λοιπόν μπορούν να ενημερώνονται από κάθε άποψη, χωρίς να χρειάζεται να μεταβάλλονται οι άδειες για κάθε χρήστη μεμονωμένα.

Η εκχώρηση ενός ρόλου σε έναν χρήστη γίνεται με τέτοιο τρόπο ώστε αυτός να μην αποκτήσει περισσότερα προνόμια από όσα του είναι απαραίτητα για να προχωρήσει στην εργασία του. Η έννοια αυτή της αρχής των ελάχιστων προνομίων (least privilege), προϋποθέτει την αναγνώριση των εργασιακών λειτουργιών του χρήστη, τον προσδιορισμό του ελάχιστου συνόλου προνομίων που απαιτούνται για την ολοκλήρωση των λειτουργιών αυτών και τον περιορισμό του χρήστη στην επικράτεια (domain) αυτών και μόνο των προνομίων. Σε λιγότερο ακριβή συστήματα ελέγχου, είναι συχνά δύσκολο ή απαιτεί μεγάλο κόστος η υποστήριξη αυτής της αρχής. Από την άλλη μεριά, πέρα από την αποτροπή απόδοσης μη-απαραίτητων δικαιωμάτων σε χρήστες, η αρχή των ελάχιστων προνομίων μπορεί να διασφαλίσει τη μικρότερη δυνατή καταστροφή σε ένα σύστημα, στις περιπτώσεις ακούσιων λαθών.

2.3.1 Οι Ιεραρχίες Ρόλων στο Μοντέλο RBAC

Οι ρόλοι είναι δυνατόν να έχουν επικαλυπτόμενες αρμοδιότητες και συνεπώς άδειες προσπέλασης. Δηλαδή χρήστες που ανήκουν σε διαφορετικούς ρόλους μπορεί να απαιτείται να έχουν ορισμένες κοινές εργασίες, το οποίο άλλωστε δεν είναι και σπάνιο φαινόμενο αφού όλοι οι χρήστες συνήθως έχουν τη δυνατότητα να εκτελούν ορισμένες κοινές για όλους, στοιχειώδεις λειτουργίες. Σε τέτοιες καταστάσεις, θα ήταν μεγάλος διαχειριστικός φόρτος εργασίας να έπρεπε επαναληπτικά για κάθε ρόλο να προσδιοριστούν αυτές οι γενικές λειτουργίες. Οι ιεραρχίες των ρόλων (role hierarchies) χρησιμοποιούνται ακριβώς για την αντιμετώπιση αυτών των καταστάσεων. Αποτελούν τα φυσικά μέσα δόμησης των ρόλων, προκειμένου αυτοί να αποτυπώσουν τους σχηματισμούς αρμοδιοτήτων ενός οργανισμού.

Μια ιεραρχία ρόλων βασίζεται στις γνωστές αρχές της συνένωσης-γενίκευσης (καθώς κινούμαστε προς τα πάνω) και του επιμερισμού-εξειδίκευσης (καθώς κινούμαστε προς τα κάτω). Έτσι οι πλέον ισχυροί και ανώτεροι (senior) ρόλοι τοποθετούνται προς την κορυφή, ενώ οι λιγότερο ισχυροί και κατώτεροι (junior) ρόλοι τοποθετούνται προς τη βάση των διαγραμμάτων απεικόνισής τους (Sandhu et al, 2000). Σε μια ιεραρχία ρόλων ένας ρόλος καθορίζεται τόσο από τα μοναδικά χαρακτηριστικά (δικαιώματα προσπέλασης) που αυτός διαθέτει, όσο και ενδεχομένως από τους ρόλους που περιέχει.

Η χρήση των ιεραρχιών ρόλων προσφέρει επιπρόσθετα πλεονεκτήματα στο RBAC μοντέλο, διότι ένας ρόλος είναι δυνατόν έμμεσα να συμπεριλαμβάνει τα δικαιώματα που έχουν εκχωρηθεί σε έναν άλλο ρόλο. Όταν ένας ρόλος λοιπόν περιλαμβάνει άλλους ρόλους, αυτό σημαίνει ότι υποστηρίζονται συγκεκριμένες σχέσεις κληρονομικότητας των εξουσιοδοτήσεων, αφού οι άδειες των κατώτερων ρόλων αποτελούν υποσύνολο των αδειών του ανώτερου ρόλου. Έτσι, οι χρήστες που αναλαμβάνουν ανώτερους ρόλους μπορούν να κληρονομούν όλες τις εξουσιοδοτήσεις των υφισταμένων τους και αντίστροφα οι χρήστες των κατώτερων ρόλων κληρονομούν κάθε απαγόρευση που ισχύει στους προϊσταμένους τους.

2.3.2 Η Έννοια των Περιορισμών στο Μοντέλο RBAC

Σε έναν οργανισμό, για την αποφυγή καταχρήσεων στις προσπελάσεις πληροφοριών και γενικώς αθέμιτων δραστηριοτήτων, απαιτούνται αρκετοί περιορισμοί στις εξουσιοδοτήσεις των χρηστών. Ο διαχωρισμός των καθηκόντων (separation of duties) αποτελεί ένα τυπικό παράδειγμα περιορισμού εξουσιοδοτήσεων, το οποίο είναι πολύ γνωστό στην περιοχή της ασφάλειας. Εκφράζει μια πρακτική πολλών οργανισμών, οι οποίοι θέλοντας να μειώσουν τον κίνδυνο απάτης, δεν επιτρέπουν σε κανένα άτομο να συγκεντρώνει πάνω του τις απαιτούμενες για αυτόν τον σκοπό εξουσιοδοτήσεις. Έτσι η αρχή του διαχωρισμού καθηκόντων επιβάλλει στη διαχείριση ασφάλειας ότι σε κανένα χρήστη δεν πρέπει να εκχωρούνται δικαιώματα τέτοια ώστε αυτός να μπορεί στη συνέχεια να χρησιμοποιήσει καταχρηστικά το σύστημα για το συμφέρον του.

Ένα μοντέλο RBAC, πέρα από τη δυνατότητα υποστήριξης της αρχής των ελάχιστων προνομίων μέσω των αντιστοιχίσεων χρηστών σε ρόλους και δικαιωμάτων σε ρόλους, διαθέτει ένα ακόμη χρήσιμο διαχειριστικό εργαλείο, τους περιορισμούς (constraints). Οι περιορισμοί σύγκρουσης συμφερόντων (conflict of interest) είναι οι κατάλληλοι για την ικανοποίηση της αρχής του διαχωρισμού καθηκόντων (Sandhu et al., 2000), διότι αρκεί να εισαχθεί σε όσους ρόλους απαιτείται ένας περιορισμός της δήλωσής τους ως “αμοιβαία αποκλειστικοί” (mutually disjoint). Έτσι αποτρέπεται η ανάθεση σε έναν χρήστη που ήδη του έχει ανατεθεί κάποιος ρόλος, ενός άλλου ρόλου του οποίου τα επιπρόσθετα δικαιώματα μπορούν να τον καταστήσουν πηγή κινδύνου (static separation of duty). Το RBAC υποστηρίζει αμοιβαία αποκλειστικούς ρόλους όχι μόνο κατά την ανάθεση ρόλων σε χρήστες αλλά και κατά την ενεργοποίηση των ρόλων από τους χρήστες. Δηλαδή, μπορούν να εισαχθούν περιορισμοί έτσι ώστε ένας χρήστης να μη μπορεί να ενεργεί χρησιμοποιώντας ταυτόχρονα συγκεκριμένους ρόλους (dynamic separation of duty).

Στους ρόλους μπορεί να επιβληθούν ακόμη και προσωρινοί (temporal) περιορισμοί, όπως ο χρόνος και η διάρκεια ενεργοποίησης ενός ρόλου από ένα χρήστη, ή ακόμη και δυνατότητα χρησιμοποίησης της ενεργοποίησης ενός ρόλου ως χρονικό έναυσμα (timed-triggering) για την ενεργοποίηση ενός άλλου ρόλου. Τέλος, η διάρθρωση του μοντέλου RBAC επιτρέπει τη δυνατότητα επιβολής περιορισμών στην ανάθεση ρόλων σε χρήστες. Για παράδειγμα, ένας ρόλος διαχειριστικός συνήθως απαιτείται να δέχεται ένα ανώτατο όριο σχετικά με το πλήθος των χρηστών που τον αναλαμβάνουν (role cardinality). Συνοψίζοντας, μέσω των περιορισμών ένας οργανισμός μπορεί να διαφυλάξει τις επιδιώξεις της γενικότερης πολιτικής του, αποκεντρώνοντας τις διαδικασίες ανάθεσης ρόλων σε χρήστες. Οι περιορισμοί αποτελούν συνεπώς, έναν ισχυρό μηχανισμό επιβολής οργανωτικών επιλογών υψηλότερου επιπέδου.

2.4 Αξιοποίηση του context κατά τον έλεγχο προσπέλασης

Παρά το γεγονός ότι τα βασισμένα σε ρόλους μοντέλα παρέχουν έναν σχετικά επαρκή τρόπο εφαρμογής ενός συστήματος ελέγχου, δεν έχουν τη δυνατότητα να εκμεταλλευτούν σημαντικά στοιχεία που αποτελούν το πλαίσιο αναφοράς (context) μέσα στο οποίο εξελίσσονται οι αιτήσεις προσπέλασης του χρήστη. Σημαντική παράμετρος για παράδειγμα, είναι αυτή της διαπίστωσης κατά πόσο εξελίσσεται μια δραστηριότητα συνεργασίας των χρηστών με στόχο την αλληλοσυμπλήρωση των ικανοτήτων τους και συνεπώς των ευθυνών που έχουν αναλάβει στα πλαίσια ενός οργανισμού. Ακόμη, το αντικείμενο, ο χώρος και ο χρόνος της αίτησης προσπέλασης αποτελούν επίσης ‘συναφείς’ πληροφορίες, χρήσιμες για την υλοποίηση ακόμη αποδοτικότερων μηχανισμών ελέγχου, ικανών για σαφή διαχωρισμό ανάμεσα στην απονομή αδειών προσπέλασης και την ενεργοποίησή τους την κατάλληλη στιγμή. Για αυτόν τον λόγο, και έχουν προταθεί επεκτάσεις στα βασισμένα σε ρόλους μοντέλα που συμπληρώνουν ένα αριθμό δυναμικών συστατικών τα οποία είναι ικανά να προσδιορίσουν το τρέχον πλαίσιο αναφοράς των αιτήσεων προσπέλασης. Αυτό βεβαίως θα χρησιμοποιείται κατά τον χρόνο εκτέλεσης (runtime) των εφαρμογών του συστήματος με σκοπό τον έλεγχο με υψηλή ακρίβεια της ενεργοποίησης των προνομίων προσπέλασης.

Η αναγκαιότητα είναι για ένα σύστημα ελέγχου προσπέλασης ικανού να υποστηρίζει δυναμικά μεταβαλλόμενες εξουσιοδοτήσεις, χωρίς όμως να επιβαρύνει τόσο το έργο των χρηστών όσο και των διαχειριστών ασφάλειας. Το σύστημα αυτό χρειάζεται να έχει ένα υβριδικό χαρακτήρα αφού θα προσπαθεί να συνδυάσει τα πλεονεκτήματα διαχείρισης των βασισμένων σε ρόλους αδειών, με τη δυνατότητα αυστηρότερων ελέγχων πάνω στη ενεργοποίηση αυτών των αδειών του κάθε χρήστη ανάλογα με την τρέχουσα ενασχόλησή του (Georgiadis et al., 2001).

2.4.1 Ενδεικτική μελέτη περίπτωσης: το μοντέλο ελέγχου προσπέλασης C-TMAC

Το μοντέλο C-TMAC (Context-based Team Access Control) στηρίζεται στα μοντέλα RBAC (Sandhu, 1998), και TMAC (Thomas, 1997). Είναι ένας αρκετά αποτελεσματικός και ταυτόχρονα ευέλικτος έλεγχος προσπέλασης που βασίζεται στις γενικότερες αρχές ενεργητικής ασφάλειας που δίνει περισσότερο βάρος στα RBAC χαρακτηριστικά των μελών της ομάδας. Προσδιορίζει με μεγαλύτερη σαφήνεια τον τρόπο αλληλεπίδρασης των βασισμένων σε ρόλους αδειών στα όρια μιας ομάδας χρηστών, έτσι ώστε να είναι δυνατή η όσο το δυνατόν πληρέστερη εκμετάλλευση των πλεονεκτημάτων διαχείρισης που αυτά προσφέρουν. Σημαντική προσθήκη αποτελεί η λειτουργικότητα που αποδίδεται στις συναφείς προς μια δραστηριότητα πληροφορίες context. Οι παράγοντες καθορισμού, το περιεχόμενο, ο τρόπος χρήσης και εν τέλει το ίδιο το νόημα των πληροφοριών context, με τον τρόπο με τον οποίο ενσωματώνονται στους μηχανισμούς ελέγχου προσπέλασης, επιδρούν καταλυτικά στη συμπεριφορά του βασισμένου σε ομάδες μοντέλου. Βασικό πλεονέκτημα που προκύπτει ως επακόλουθο της χρήσης context, είναι η μείωση του όγκου του διαχειριστικού έργου που αφορά τις ομάδες και τα δικαιώματα των μελών τους. Αξίζει τέλος να υπογραμμισθεί ότι κατ’ αυτόν τον τρόπο αποκτά δυνατότητα εφαρμογής ακόμη και σε δραστηριότητες όπου οι χρήστες δρουν μεμονωμένα και όχι σαν μέλη ομάδων.

Η ενοποίηση (integration) χαρακτηριστικών RBAC και Contexts (Georgiadis et al., 2001) οδηγεί στον σχηματισμό του μοντέλου C-TMAC, του οποίου βασικά σημεία είναι: •

Η έννοια της ομάδας εξυπηρετεί πραγματικές διαχειριστικές ανάγκες. Επειδή τα επιμέρους πλαίσια αναφοράς των ενεργειών των χρηστών είναι τόσο πολλά για να μπορεί κανείς να τα χειρίζεται ξεχωριστά επί καθημερινής βάσης, οι ομάδες μπορεί να θεωρηθούν ως ‘ομαδοποιήσεις πλαισίων’. Με τον ίδιο τρόπο που οι ρόλοι στο μοντέλο RBAC παρέχουν μια αποδοτική μέθοδο χειρισμού των διάφορων υπευθυνοτήτων των χρηστών στους οργανισμούς, οι ομάδες αναλογικά μπορούν να διευκολύνουν τη διαχείριση των πληροφοριών context στις διάφορες δραστηριότητες που εξελίσσονται.

Υπάρχουν βεβαίως, πολλές περιπτώσεις όπου οι χρήστες λειτουργούν όχι στα πλαίσια μιας ομάδας, αλλά μόνοι τους και απομονωμένα. Οι περιπτώσεις αυτές μπορούν επίσης να αντιμετωπιστούν από το μοντέλο αυτό, επιτρέποντας ομάδες ενός μέλους. Έτσι, ένας χρήστης που δε θέλει να δράσει ως μέλος ομάδας, ενεργοποιεί χωρίς να χρειάζεται να το ζητήσει ρητά, την προκαθορισμένη ιδιωτική ομάδα του. Με αυτό τον τρόπο, το μοντέλο αυτό μπορεί να χρησιμοποιηθεί σε όλα τα περιβάλλοντα, αφού είναι ικανό να υποστηρίξει και την ομαδική και την ατομική δραστηριότητα των χρηστών.

Σχήμα 3.4 Το μοντέλο C-TMAC

Υπάρχουν διάφοροι τρόποι με τους οποίους μπορούν να συνδυαστούν τα βασισμένα σε ρόλους δικαιώματα των μελών μιας ομάδας: •

Προφανώς, συνδυασμοί των τριών αυτών μεθόδων μπορούν να χρησιμοποιηθούν με τελικό στόχο την προσαρμογή των δικαιωμάτων πρόσβασης σε ειδικές ανάγκες και προϋποθέσεις.

2.4.2 Ενεργοποίηση των τελικών δικαιωμάτων χρήστη στο μοντέλο C-TMAC

Για την αντιμετώπιση του προβλήματος του ελέγχου προσπέλασης σε περιβάλλοντα όπου εξελίσσονται και δραστηριότητες συνεργασίας των χρηστών, χρησιμοποιούμε βασισμένη σε ρόλους απονομή αδειών και βασισμένη σε ομάδες ενεργοποίηση των αδειών πρόσβασης. Σκοπός μας ο έλεγχος πρόσβασης συγκεκριμένων δεδομένων σε μικρά χρονικά διαστήματα. Η λειτουργία του συστήματος ελέγχου, έχει ως εξής:

Μετά την ολοκλήρωση της διαδικασίας αναγνώρισης και πιστοποίησης χρήστη από το σύστημα, ο χρήστης πρέπει να επιλέξει τους αρχικούς ρόλους με τους οποίους θα λειτουργήσει κατά την τρέχουσα συνεδρία (session). Επιλέγει έναν ή περισσότερους ρόλους, αλλά πάντα από τους ρόλους που η διαχείριση του οργανισμού έχει ορίσει ως διαθέσιμους για αυτόν, ανάλογα με τα προσόντα, την εμπειρία και τις ικανότητες που διαθέτει. Σύμφωνα με αυτή του την επιλογή, ένα συγκεκριμένο σύνολο (βασισμένων σε ρόλους) αδειών του εκχωρείται, το οποίο ονομάζεται άδειες ρόλων συνεδρίας (session-roles permissions). Μέχρι αυτό το σημείο, το μοντέλο συμπεριφέρεται όπως ακριβώς ένα τυπικό μοντέλο παθητικής ασφάλειας: το τρέχον σύνολο αδειών πρόσβασης δεν είναι ικανό να ανιχνεύσει καμίας μορφής πλαίσιο πληροφοριών.

Μετά την επιλογή ρόλου, ο χρήστης επιλέγει την ομάδα ή τις ομάδες που θα συμμετάσχει κατά την τρέχουσα συνεδρία. Έτσι σε πρώτη φάση τροποποιούνται οι άδειες πρόσβασης που κατέχει, αφού αυτές συνδυάζονται (με έναν από τους τρόπους που καθορίζονται στον ορισμό του C-TMAC) με τις άδειες τις βασισμένες σε ρόλους που προέρχονται από τους ρόλους που έχουν επιλέξει οι υπόλοιποι χρήστες, μέλη εκείνη τη στιγμή της ίδιας ομάδας. Η πρώτη λοιπόν φάση προσδιορισμού των βασισμένων σε ρόλους δικαιωμάτων ενός χρήστη ολοκληρώνεται με τον συνδυασμό των session-roles προσωπικών δικαιωμάτων του και των team-roles δικαιωμάτων των μελών της ομάδας του.

Οι ομάδες θεωρούνται ως σύνολα πληροφοριών contexts σχετικών με τις τρέχουσες δραστηριότητες. Επιλέγοντας λοιπόν ο χρήστης μια ομάδα, αποκτά επιπλέον (σε δεύτερη φάση) και το σύνολο των contexts που αντιστοιχεί σ΄ αυτήν. Το πλαίσιο αναφοράς της ομάδας (team context) αποτελείται από συγκεκριμένα αντικείμενα δεδομένων (στόχοι αιτήσεων πρόσβασης) και από συνθήκες που εκφράζονται με όρους πεδίων τιμών (ranges of values) για τους παράγοντες context. Για κάθε ομάδα υπάρχουν διαθέσιμες μεταβλητές συστήματος, ικανές να διατηρούν σύνολα τιμών για τις παραμέτρους που επιλέξαμε. Το ‘δέσιμο’ αυτών των μεταβλητών με τις πραγματικές τιμές τους, πραγματοποιείται σε πραγματικό χρόνο (runtime) από το προσωπικό διαχείρισης του οργανισμού, ενώ και αρκετές από τις προβλεπόμενες διαδικασίες εκχώρησης-ανάθεσης μπορούν έως ένα βαθμό να αυτοματοποιηθούν με τη χρήση κατάλληλων διατάξεων ελέγχου φυσικής παρουσίας των χρηστών, ενός ελέγχου που πραγματοποιείται σε συνδυασμό με τη δυνατότητα καθορισμού διάρθρωσης των ομάδων με όρους ρόλων για συχνά εμφανιζόμενες καταστάσεις.

Το context ομάδας λειτουργεί τελικά ως σύνολο περιορισμών πάνω στα αντικείμενα προσπέλασης καθώς και στις συνθήκες κατά την αίτηση προσπέλασης. Επιτρέπει το φιλτράρισμα, την επιλογή μέρους δηλαδή των δεδομένων που ο χρήστης ζητάει, και τελικά είναι υπεύθυνο για το αποτέλεσμα της αίτησης που λαμβάνει ο χρήστης. Το φιλτράρισμα αυτό ουσιαστικά γίνεται πάνω στα βασισμένα σε ρόλους δικαιώματα της ομάδας του χρήστη. Έτσι, τα τελικά δικαιώματα που ενεργοποιούνται για ένα χρήστη κινούνται πάντα μέσα στα πλαίσια της δραστηριότητας της ομάδας του. Κάθε αίτησή του για πρόσβαση, επιτρέπεται μόνο αν τα αναγκαία βασισμένα σε ρόλους δικαιώματα του έχουν ήδη αποδοθεί και μόνον όταν οι τρέχουσες τιμές των μεταβλητών context περιέχονται στα πεδία τιμών που προσδιορίζουν το context της ομάδας του. Με αυτό τον τρόπο, κρίσιμες πληροφορίες μιας δραστηριότητας γίνονται διαθέσιμες μόνο στα μέλη της ομάδας χρηστών που την έχει αναλάβει και μόνο κατά τη διάρκεια που αυτή εξελίσσεται.

Η διαδικασία φιλτραρίσματος (filtering process) προσδίδει αυξημένη δυναμικότητα στο μοντέλο C-TMAC. Στηρίζεται σε κανόνες οι οποίοι με απλό αλλά ταυτόχρονα και αυστηρό όπου χρειάζεται τρόπο είναι ικανοί να προσδιορίσουν το τελικό σύνολο δικαιωμάτων ενός χρήστη. Μπορεί να θεωρηθεί ως ένας μηχανισμός εξαγωγής μεστών σε νόημα (meaningful) υποσυνόλων των βασισμένων σε ρόλους συνόλων αδειών προσπέλασης. Τα υποσύνολα αυτά βασίζονται στις τιμές των μεταβλητών που προσδιορίζουν τα πεδία τιμών για όλους τους επιλεγμένους παράγοντες προσδιορισμού του context της ομάδας και είναι με αυτό τον τρόπο ικανά να εξυπηρετήσουν τους εξειδικευμένους στόχους του συστήματος ελέγχου προσπέλασης. Απαιτείται βέβαια από το τμήμα διαχείρισης του υπό θεώρηση οργανισμού, ο προσδιορισμός των “νομίμων” (valid) και αποδεκτών (acceptable) πεδίων τιμών των πληροφοριών context για κάθε ομάδα.

Συμπερασματικά, η ενεργοποίηση των αδειών πρόσβασης ενός χρήστη, διενεργείται με την ακόλουθη διαδικασία δυο βημάτων:

Βήμα 1: Ένας χρήστης που έχει επιλέξει ένα σύνολο ρόλων και συμμετέχει σε ένα σύνολο ομάδων, αρχικά αποκτά τα βασισμένα σε ρόλους δικαιώματα σύμφωνα με την ακόλουθη έκφραση, όπου ≥ σημαίνει “σε συνδυασμό με”:

Role-based Permissions = Session-Roles Permissions ⊕ Team-Roles Permissions

Βήμα 2: Τα τελικά δικαιώματα που ενεργοποιούνται για τον χρήστη, είναι τα context-based permissions, τα οποία προέρχονται από τα role-based permissions του 1ου βήματος, σύμφωνα με την ακόλουθη έκφραση, όπου ⊕ σημαίνει “φιλτραρισμένα από”:

Context-based Permissions = Role-based Permissions ⊗ Team-Context

3. Συστήματα Πληρωμών Ηλεκτρονικού Εμπορίου

Σημαντική πλευρά των τεχνολογιών ηλεκτρονικού εμπορίου αποτελεί η υποστήριξη των ηλεκτρονικών πληρωμών. 'Αλλωστε, η αξιοποίηση των δυνατοτήτων του ηλεκτρονικού εμπορίου σε ολοένα και μεγαλύτερη κλίμακα, εξαρτάται από τη διαθεσιμότητα και την ευρεία διάδοση των συστημάτων ηλεκτρονικών πληρωμών. Στην τελευταία αυτή ενότητα του κεφαλαίου θα αναφερθούμε επιλεκτικά και με συντομία στις κυριότερες μορφές συστημάτων πληρωμών ηλεκτρονικού εμπορίου (e-payment systems). Τα συστήματα αυτά μπορεί να εμπλέκουν διάφορους ‘παίκτες’ – συμμετέχουσες οντότητες και μια ποικιλία μεθόδων πληρωμής. Ειδική αναφορά θα γίνει σε δύο σημαντικά σχήματα-πρωτόκολλα ασφαλείας που εμπλέκονται στην υποστήριξη πληρωμών ηλεκτρονικού εμπορίου: το πρωτόκολλο γενικής χρήσης SSL και το πρωτόκολλο 3D-Secure για τις online πληρωμές με χρήση (πιστωτικών/χρεωστικών) καρτών.

3.1 Είδη και μέσα πληρωμών ηλεκτρονικού εμπορίου

Κυρίαρχη τάση αποτελούν οι πληρωμές που βασίζονται σε κάρτες (card-based payments), όμως σημαντικό ρόλο παίζει και η χρήση ψηφιακών πορτοφολιών (e-wallets) όπως το PayPal. Επίσης, συστήματα ψηφιακού χρήματος, όπως το Bitcoin, αποτελούν ενδιαφέρουσες εναλλακτικές λύσεις. Μια πιο καθαρή ίσως εικόνα των συστημάτων πληρωμών μπορεί να δοθεί, χρησιμοποιώντας ως κριτήριο κατηγοριοποίησης το πότε ο αγοραστής πληρώνει, πότε ουσιαστικά μετατρέπει τα χρήματά του σε ένα κατάλληλο μέσο για ηλεκτρονικές συναλλαγές: πριν να αποφασίσει μια συγκεκριμένη αγορά, κατά τη διάρκεια της συναλλαγής, ή μετά την απόφασή του να προβεί σε μια αγορά:

Πίστωσης ή πληρωμής μετά την αγορά (credit or postpaid): το μηχάνημα του διακομιστή (server) από την πλευρά του πωλητή/εμπόρου ελέγχει τη γνησιότητα των πελατών, δηλαδή πιστοποιεί την ταυτότητά τους (authentication), και ταυτόχρονα ελέγχει στην τράπεζα για τα κατάλληλα υπόλοιπα πίστωσης πριν την ολοκλήρωση της συναλλαγής. Σημαντικό σημείο είναι ότι έχει προ-συμφωνηθεί μια διαδικασία επίλυσης διαφορών μεταξύ των εμπλεκόμενων μερών. Η πιο διαδεδομένη μορφή μηχανισμών πίστωσης είναι η υποστήριξη online συναλλαγών με πιστωτικές κάρτες (credit cards). Διατραπεζικοί όμιλοι, όπως η Visa, η MasterCard ή η American Express καθορίζουν τους κανόνες στις τράπεζες που εκδίδουν τις κάρτες και έχουν την επίβλεψη της επεξεργασίας των συναλλαγών (Laudon & Traver, 2014). Στην επιβεβαίωση των στοιχείων της πιστωτικής κάρτας και τον έλεγχο υπολοίπου εμπλέκονται ιδρύματα διευθέτησης (clearinghouses, γραφεία εκκαθάρισης συναλλαγών, κέντρα επεξεργασίας) ως ‘τρίτα αξιόπιστα μέρη’ (third party verification). Για τη διευθέτηση, τα ιδρύματα επικοινωνούν με κέντρα διαχείρισης πιστοποιητικών. Για λόγους μεγαλύτερης διασφάλισης των συναλλαγών, η χρήση των ευαίσθητων στοιχείων της κάρτας γίνεται αποκλειστικά σε κρυπτογραφημένη μορφή. Με αυτό τον τρόπο οι πληροφορίες της πιστωτικής κάρτας, όχι μόνο προφυλάσσονται κατά τη διακίνησή τους στο Διαδίκτυο, αλλά δεν αποκαλύπτονται ούτε και στον ίδιο τον έμπορο (Κάτσικας, 2001). Ως συνολική λοιπόν εικόνα, εκτός των ομίλων που θέτουν τα πρότυπα, διακρίνουμε πέντε οντότητες που συμμετέχουν στα ηλεκτρονικά συστήματα πληρωμής με πιστωτικές κάρτες: ο καταναλωτής/πελάτης (κάτοχος της κάρτας), ο πωλητής/έμπορος, η τράπεζα που εκδίδει την κάρτα (εκδότρια τράπεζα, η τράπεζα του πελάτη), η τράπεζα του εμπόρου, και το ίδρυμα διευθέτησης.

Κάντε κλικ για επανάληψη της κίνησης στην παρακάτω εικόνα:

Σχήμα 3.5 Φάσεις συναλλαγής με πιστωτική κάρτα

Να σημειωθεί ότι οι λογαριασμοί πιστωτικών καρτών (όπως οι λογαριασμοί άλλων υπηρεσιών, πχ. τηλεφώνου) αποκαλούνται πληρωμές συσσώρευσης υπολοίπου (accumulating balance) επειδή συσσωρεύουν δαπάνες μέσα σε μια προκαθορισμένη χρονική περίοδο (συνήθως ένα μήνα) και κατόπιν εξοφλούνται (πλήρως ή εν μέρει) στο τέλος της περιόδου.

Χρέωσης ή προπληρωμής (debit or prepaid): οι χρήστες πληρώνουν προκαταβολικά για να αποκτήσουν αντίστοιχα δικαιώματα. Υπάρχει σχέση με τα αποκαλούμενα συστήματα πληρωμών αποθηκευμένης αξίας (stored value), αφού αυτά περιλαμβάνουν χρήση λογαριασμών (που περιέχουν χρήματα κατατεθειμένα εκ των προτέρων) από τους οποίους διενεργούνται πληρωμές. Παραδείγματα πληρωμών αποθηκευμένης αξίας είναι οι χρεωστικές κάρτες, οι προπληρωμένες κάρτες, οι έξυπνες κάρτες και οι δωροεπιταγές (Laudon & Traver, 2014). Η χρήση των χρεωστικών καρτών (debit cards) είναι μια πολύ διαδεδομένη μορφή πληρωμών ηλεκτρονικού εμπορίου σε αυτήν την κατηγορία. Η ιδιαιτερότητά τους, σε σχέση με τις άλλες πληρωμές της ίδιας κατηγορίας, είναι ότι χρεώνουν απευθείας (την ώρα της συναλλαγής) έναν λογαριασμό, που όμως απαιτείται να έχει ήδη κατατεθειμένα χρήματα σε επάρκεια. Μια εναλλακτική, και ευρέως διαδεδομένη μορφή πληρωμών σε περιβάλλοντα ηλεκτρονικού εμπορίου σε αυτήν την κατηγορία είναι οι αποκαλούμενες online πληρωμές αποθηκευμένης αξίας. To PayPal είναι το πιο διαδεδομένο σύστημα πληρωμής αυτής της υποκατηγορίας, που από τη μια μεριά δεν προϋποθέτει ακριβώς την προπληρωμή, αλλά από την άλλη μεριά απαιτεί αποθηκευμένη αξία χρημάτων: ένας λογαριασμός PayPal για έναν αγοραστή ή έναν πωλητή, προϋποθέτει τον προσδιορισμό ενός (χρεωστικού, τρεχούμενου ή πιστωτικού) λογαριασμού στον οποίο θα γίνει η χρέωση ή η πίστωση χρημάτων όταν ολοκληρωθεί η online συναλλαγή. Στην ουσία του, είναι μια υπηρεσία διαμεσολάβησης, μια πύλη πληρωμών (Trautman, 2014), ικανή να υποστηρίξει ακόμη και πληρωμές μικροποσών. Χρησιμοποιείται και ο όρος ομότιμο σύστημα πληρωμών (P2P), επειδή επιτρέπει τη διεκπεραίωση πληρωμών (έως ένα καθορισμένο ποσό) χωρίς τη μεσολάβηση τραπεζών. Όταν ο αγοραστής κάνει μια πληρωμή PayPal, στέλνει μέσω email την πληρωμή στον λογαριασμό PayPal του πωλητή, χωρίς να διακινούνται ευαίσθητες πληροφορίες για πιστωτικές κάρτες, λογαριασμούς κλπ. μεταξύ των δυο συναλλασσόμενων μερών: το PayPal αναλαμβάνει να μεταφέρει το χρηματικό ποσό από τον λογαριασμό του αγοραστή στον λογαριασμό του πωλητή (Laudon & Traver, 2014), αξιοποιώντας τη συνεργασία του με το αυτοματοποιημένο δίκτυο διευθέτησης/εκκαθάρισης λογαριασμών (ACH). Πρόκειται για έναν αυτόνομο ιδιωτικό οργανισμό που έχει ρόλο διαμεσολαβητή των συναλλαγών και διεκπεραιώνει τις μεταφορές χρημάτων μεταξύ τραπεζών ή άλλων οικονομικών ιδρυμάτων.

Μετρητά ή πραγματικού χρόνου (cash or real-time): η συναλλαγή εξοφλείται με την ανταλλαγή ηλεκτρονικού χρήματος (e-currency). Στην κατηγορία αυτή πληρωμών ανήκουν τα ψηφιακά μετρητά (digital cash, e-cash), τα οποία είναι το ηλεκτρονικό ανάλογο του φυσικού χρήματος. με ενδεικτικά συστήματα πληρωμής το Bitcoin και το Ukash, καθώς και το εικονικό χρήμα (virtual currency) το οποίο χρησιμοποιείται σε εσωτερικές κοινότητες εικονικών κόσμων (πχ. Facebook credits). Οι πληρωμές αυτής της μορφής βασίζονται σε αλγορίθμους που παράγουν μοναδικά αυθεντικοποιημένα τεκμήρια (tokens) τα οποία αναπαριστούν χρηματική αξία και τα οποία χρησιμοποιούνται στις συναλλαγές. Για παράδειγμα, τα Bitcoins είναι κρυπτογραφημένοι αριθμοί που παράγονται από ένα σύνθετο αλγόριθμο, ο οποίος κάνει χρήση ομότιμων δικτύων, όπως και το PayPal που είδαμε προηγουμένως. Όμως εν αντιθέσει με το συγκεντρωτικό (centralized) χαρακτήρα του PayPal, τα Bitcoins είναι ένα αποκεντρωμένο (decentralized) σύστημα έκδοσης ψηφιακών μετρητών που προϋποθέτει μάλιστα μια διαδικασία εξόρυξης πολύ απαιτητική σε όρους υπολογιστικής ισχύος (Kazan et al., 2014). Σημαντικά στοιχεία των Bitcoins είναι η ανωνυμία τους (δεν απαιτούν στοιχεία ταυτοποίησης, εκτός από μια αλφαριθμητική διεύθυνση 34 χαρακτήρων την οποία ο χρήστης χρησιμοποιεί για να μπορεί να τα ανταλλάξει), και η αυξομείωση της αξίας τους, βάσει κανόνων προσφοράς-ζήτησης, όπως άλλωστε συμβαίνει σε κάθε μορφή νομίσματος (Laudon & Traver, 2014).

3.2 Το πρωτόκολλο επιπέδου ασφαλών υποδοχών Secure Sockets Layer (SSL)

Τα σχήματα ασφαλείας που χρησιμοποιούνται συνήθως σε μεθόδους ηλεκτρονικών πληρωμών ικανοποιούν τις τέσσερις ακόλουθες βασικές απαιτήσεις ασφάλειας για ασφαλείς πληρωμές:

  1. Πιστοποίηση: μια μέθοδος επαλήθευσης της ταυτότητας (αυθεντικοποίηση) του καταναλωτή πριν να εξουσιοδοτηθεί η πληρωμή, αλλά και του εμπόρου που δέχεται την πληρωμή.
  2. Κρυπτογράφηση: μια διαδικασία να γίνονται τα μηνύματα ακατάληπτα για όλους, εκτός εκείνων που έχουν ένα κλειδί αποκρυπτογράφησης.
  3. Ακεραιότητα: επιβεβαίωση ότι οι πληροφορίες δε θα αλλάξουν ή δε θα καταστραφούν κατά λάθος ή σκόπιμα κατά τη μετάδοση.
  4. Μη άρνηση αποδοχής χρέους: προστασία από την άρνηση των καταναλωτών να πληρώσουν παραγγελίες που έδωσαν, ή από την άρνηση εμπόρων ότι έλαβαν μια πληρωμή.

Από τα πιο σημαντικά και ευρέως χρησιμοποιούμενα σχήματα ασφαλείας είναι το πρωτόκολλο γενικής χρήσης SSL. Και όχι μόνο για συστήματα πληρωμών: για παράδειγμα, το πρωτόκολλο HTTPS (Hypertext Transfer Protocol Secure) που θα δούμε αναλυτικότερα τη λειτουργία του αργότερα, είναι ουσιαστικά «HTTP over SSL», δηλαδή εφαρμόζει το SSL ανάμεσα σε Web servers και σε προγράμματα πλοήγησης που επικοινωνούν με το πρωτόκολλο HTTΡ. Η προδιαγραφή Transport Layer Security (TLS), είναι ένα Internet Standard (RFC 5246) από την IETF (Internet Engineering Task Force) που προέκυψε ως επακόλουθο του SSL και είναι σχεδόν ταυτόσημη με την τρέχουσα έκδοση 3 του SSL (SSLv3). Γι’ αυτόν τον λόγο, το πρωτόκολλο είναι γνωστό και ως SSL/TLS. Το SSL/TLS λοιπόν ανήκει στις λύσεις γενικής σχετικά χρήσης, οι οποίες στην ιεραρχία των πρωτοκόλλων βρίσκονται (και ουσιαστικά εφαρμόζουν ασφάλεια) ακριβώς επάνω από το επίπεδο Μεταφοράς (TCP/IP) και κάτω από το επίπεδο Εφαρμογής (Μάγκος, 2013), με στόχο την υποστήριξη πρωτοκόλλων υψηλότερου επιπέδου. Βεβαίως, λόγω της θέσης του, το SSL/TLS μπορεί να βασίζεται στις ιδιότητες που εγγυάται το TCP και, για παράδειγμα, δε χρειάζεται να ασχοληθεί με την αξιόπιστη παράδοση των δεδομένων.

HTTP

Telnet

FTP

SMTP

και άλλα …

SSL/TLS

TCP/IP

Πίνακας 3.1 Η θέση του πρωτοκόλλου SSL

Σε αυτό το επίπεδο, υπάρχουν δύο επιλογές υλοποίησης. Για πλήρη γενικότητα, το SSL (ή το TLS) θα μπορούσε να παρασχεθεί ως μέρος της υποκείμενης οικογένειας πρωτοκόλλων και ως εκ τούτου να είναι διαφανές (transparent) για εφαρμογές. Εναλλακτικά, το SSL μπορεί να ενσωματωθεί σε συγκεκριμένες εφαρμογές. Για παράδειγμα, τα περισσότερα προγράμματα περιήγησης έρχονται εξοπλισμένα με SSL, και οι περισσότεροι διακομιστές Ιστού (Web servers) υλοποιούν το πρωτόκολλο (Stallings, 2014).

Το πρωτόκολλο SSL χρησιμοποιεί υβριδικό σύστημα κρυπτογράφησης, συνδυάζει δηλαδή κρυπτογραφία μυστικού και δημόσιου κλειδιού. Απλοποιημένα, η λειτουργία του βασίζεται στην ανταλλαγή συμμετρικού κλειδιού (υιοθετώντας τη λογική του αλγορίθμου ανταλλαγής κλειδιών Diffie-Hellman με τη δημιουργία ενός ψηφιακού φακέλου, όπως είδαμε στο προηγούμενο κεφάλαιο στο σχήμα 2.4). Βασικά βήματα λοιπόν είναι:

  1. O Χρήστος επισκέπτεται τον ιστότοπο της Μαριάννας, και λαμβάνει το πιστοποιητικό του δημόσιου κλειδιού της.
  2. Ο Χρήστος επιλέγει ένα μυστικό κλειδί Κ, το οποίο κρυπτογραφεί με το δημόσιο κλειδί της Μαριάννας PUΜ. Παράγει έτσι το κρυπτογραφημένο μήνυμα Y.
  3. Αποστέλλει στη Μαριάννα αυτό το κρυπτογραφημένο μήνυμα Y.
  4. H Μαριάννα αποκρυπτογραφεί το Y με το ιδιωτικό της κλειδί PRΜ και αποκτά το κλειδί Κ.
  5. Η Μαριάννα και ο Χρήστος χρησιμοποιούν το κλειδί Κ και έναν συμμετρικό αλγόριθμο για την επικοινωνία τους.
  6. Πλέον, πχ. ο Χρήστος στέλνει τον αριθμό της πιστωτικής του κάρτας για την αγορά που θέλει να κάνει.

Το SSL είναι σχεδιασμένο ώστε να παρέχει διαφανείς (transparent) υπηρεσίες στον χρήστη. Ειδικότερα, ο ‘συνδυασμός’ των δυνατοτήτων κρυπτογράφησης που παρέχει το πρωτόκολλο SSL και του HTTP πρωτοκόλλου αναφέρεται ως πρωτόκολλο HTTPS. Η κρυπτογράφηση που χρησιμοποιείται διασφαλίζει ότι τα κρυπτογραφημένα δεδομένα δε θα μπορούν να υποκλαπούν από άλλους κακόβουλους χρήστες. Ας δούμε τη λειτουργία του πρωτοκόλλου HTTPS πιο αναλυτικά: ένας SSL Web διακομιστής (server) δέχεται μία αίτηση από έναν πελάτη (client) για «ασφαλή» σύνδεση σε μια θύρα διαφορετική από αυτήν των απλών HTTP αιτήσεων (port 80). Εξ’ ορισμού είναι η port 443. Το URL για συνδέσεις στη θύρα 443 είναι της μορφής: https://www.server.com. Όταν ο πελάτης συνδέεται σε αυτήν τη θύρα, αρχικοποιεί τη σύνοδο SSL. Η αρχικοποίηση αυτή αποκαλείται «χειραψία» (SSL handshake). Να σημειωθεί ότι η SSL-χειραψία χρειάζεται να πραγματοποιηθεί μόνο μια φορά: αυτό που συμβαίνει όταν ολοκληρωθεί η χειραψία είναι η δημιουργία μιας SSL συνόδου (session) κατά τη διάρκεια της οποίας η επικοινωνία πλέον κρυπτογραφείται και οι έλεγχοι ακεραιότητας εκτελούνται έως ότου εκπνεύσει η σύνοδος SSL. Κατά τη διάρκεια της SSL-χειραψίας συμβαίνουν τα ακόλουθα:

  1. Ο πελάτης (προαιρετικά) και ο διακομιστής (υποχρεωτικά) ανταλλάσσουν ψηφιακά πιστοποιητικά (X.509) ώστε να αποδείξουν την ταυτότητά τους. Αυτή η ανταλλαγή ενδεχομένως περιλαμβάνει μια αλυσίδα πιστοποιητικών, έως το πιστοποιητικό ρίζας (του οποίου το δημόσιο κλειδί εμπιστεύονται όλοι οι χρήστες του συστήματος). Η αποστολή του ψηφιακού πιστοποιητικού από τον διακομιστή είναι υποχρεωτική επειδή ο πελάτης χρειάζεται να αποκτήσει το δημόσιο κλειδί του διακομιστή.
  2. Ο πελάτης δημιουργεί ένα τυχαίο ζεύγος κλειδιών που θα το χρησιμοποιήσει για την κρυπτογράφηση και τον υπολογισμό των απαιτούμενων Κωδικών Αυθεντικοποίησης Μηνυμάτων (Message Authentication Codes, MACs), οι οποίοι είναι συναρτήσεις σύνοψης (hash) ειδικής μορφής που θα εξηγηθούν αμέσως μετά. Χρησιμοποιούνται ξεχωριστά κλειδιά για τις επικοινωνίες πελάτη-διακομιστή (client write), και διακομιστή-πελάτη (server write), δηλαδή σύνολο τέσσερα κλειδιά:
  3. Τα κλειδιά κρυπτογραφούνται με το δημόσιο κλειδί του διακομιστή και αποστέλλονται με ασφάλεια στον διακομιστή.
  4. Τίθενται υπό διαπραγμάτευση ένας αλγόριθμος κρυπτογράφησης και ένας αλγόριθμος (συνάρτηση) δημιουργίας τιμών hash (για την πιστοποίηση των δύο μερών και τον έλεγχο ακεραιότητας). Ο πελάτης παρουσιάζει μια λίστα με όλους τους αλγόριθμους που υποστηρίζει (πχ. κρυπτογράφηση: AES, DES,… και σύνοψη: SHA, MD5, …), και ο διακομιστής επιλέγει έναν εκ των αλγορίθμων που είναι διαθέσιμοι.

Η συνάρτηση Κώδικα Αυθεντικοποίησης Μηνύματος (MAC), χρησιμοποιείται για την αυθεντικοποίηση των πληροφοριών (δηλαδή την πιστοποίηση της ταυτότητας των μερών που επικοινωνούν) και ως προϋπόθεση έχει το ότι τα δύο μέρη που επικοινωνούν ήδη έχουν συμφωνήσει ένα μυστικό κλειδί. Ο MAC είναι γνωστός και ως συνάρτηση keyed hash, διότι συνδυάζει μια ισχυρή (ή αλλιώς κρυπτογραφική) συνάρτηση σύνοψης (hash), στις οποίες αναφερθήκαμε στο προηγούμενο (2ο) κεφάλαιο, στην παράγραφο της Ακεραιότητας, με ένα μυστικό (συμμετρικό) κλειδί που γνωρίζουν μόνον ο αποστολέας και ο παραλήπτης.

Ειδικότερα στο SSL, οι παραγόμενοι κώδικες MAC δε χρησιμοποιούνται μόνο για την πιστοποίηση/αυθεντικοποίηση των μηνυμάτων, αλλά και για τον έλεγχο ακεραιότητάς τους. Για να επιτευχθεί αυτό, ακολουθείται μια διαδικασία δύο βημάτων στο SSL: πρώτα η αυθεντικοποίηση και μετά η κρυπτογράφηση. Συγκεκριμένα, στην περίπτωση για παράδειγμα της επικοινωνίας από SSL διακομιστή σε πελάτη, ο διακομιστής αρχικά αυθεντικοποιεί το μήνυμα M, υπολογίζοντας τη σύνοψη (MAC value) Τ = MAC(κλειδί server write MAC, Μ). Στη συνέχεια κρυπτογραφεί (Μ') και το μήνυμα Μ και τον MAC του Μ'=Ε(κλειδί server write, Μ+Τ).

Ο πελάτης λαμβάνοντας το Μ', έχει διασφαλισμένη την εμπιστευτικότητα του μηνύματος, αφού μόνο αυτός γνωρίζει το κλειδί server write, και έτσι λαμβάνει τα Μ και Τ. Επίσης ο πελάτης χρησιμοποιεί το Μ και το δεύτερο κλειδί του διακομιστή που γνωρίζει (το server write MAC) για να υπολογίσει από μόνος του την τιμή Τ=MAC(κλειδί server write MAC, M). Συγκρίνει τις δύο τιμές ΜΑC: αν είναι ίδιες, ο πελάτης επαληθεύει την ταυτότητα του διακομιστή ως αποστολέα του μηνύματος, αφού μόνον ο διακομιστής γνωρίζει το κλειδί server write MAC, για να μπορεί να κατασκευάσει το MAC(Μ). Χάρη στη χρήση της κρυπτογραφικής συνάρτησης hash, ο αλγόριθμος επιπλέον διασφαλίζει την ακεραιότητα των μηνυμάτων που ανταλλάσσονται. Για παράδειγμα, αν το μέγεθος της τιμής εξόδου της συνάρτησης hash είναι μεγάλο, πχ. 256 bit, η εύρεση ενός μηνύματος Μ'' ώστε Η(Μ)=Η(Μ'') είναι πρακτικά αδύνατη (Μάγκος, 2013).

Κάντε κλικ για επανάληψη της κίνησης στην παρακάτω εικόνα:


Σχήμα 3.6 Η διαδικασία της χειραψίας σύμφωνα με το πρωτόκολλο SSL

3.3 Το πρωτόκολλο 3D-Secure

Η χρησιμοποίηση των πιστωτικών/χρεωστικών καρτών ως μέσα πληρωμών στις συναλλαγές ηλεκτρονικού εμπορίου εγκυμονεί ορισμένους κινδύνους: υπάρχει ο κίνδυνος αφενός να γίνουν γνωστά τα στοιχεία της κάρτας του πελάτη/καταναλωτή εφόσον η επιχείρηση μπορεί να τα διαβάσει (ζήτημα ιδιωτικότητας), και αφετέρου η κάρτα του καταναλωτή να είναι πλαστή, ενόσω η επιχείρηση δεν μπορεί να επιβεβαιώσει τα στοιχεία της άμεσα. Στο σημείο αυτό επεμβαίνουν πρωτόκολλα υποστήριξης πληρωμών και εκμηδενίζουν την πιθανότητα αυτή. Στόχος, η επιχείρηση να μην αποθηκεύει τα εμπιστευτικά στοιχεία του καταναλωτή, μιας και αυτό δεν είναι απαραίτητο για την ορθή λειτουργία του συστήματος ηλεκτρονικών πληρωμών. Επίσης, η επιχείρηση/έμπορος μπορεί μέσω του διατραπεζικού συστήματος χρέωσης να ελέγξει την εγκυρότητα της πιστωτικής κάρτας. Το πρωτόκολλο SSL που αναφέρθηκε προηγουμένως βρίσκεται στην καρδιά των σύγχρονων λύσεων υποστήριξης συναλλαγών μέσω καρτών, όπως θα αναδειχθεί και από την περιγραφή του πρωτοκόλλου 3D-Secure.

Για 'ιστορικούς' κυρίως λόγους, θα κάνουμε μια αναφορά για μια πρώτη προσπάθεια που έγινε στις αρχές του 2000 από τις Visa και MasterCard για να προσφέρουν συναλλαγές με πιστωτική κάρτα στον παγκόσμιο Ιστό: Ήταν το πρωτόκολλο SET (Secure Electronic Transactions). Η βασική του φιλοσοφία, της οποίας αρκετά στοιχεία μπορεί κανείς να συναντήσει και στη νεότερη προσέγγιση 3D-Secure, είναι: η επιχείρηση/έμπορος ανοίγει λογαριασμό σε τράπεζα (τράπεζα αποδέκτη, acquiring bank), η τράπεζα αποδέκτης καθορίζει ποιες κάρτες γίνονται δεκτές στις συναλλαγές, ο καταναλωτής δίνει τα στοιχεία της κάρτας του στην επιχείρηση μέσω ασφαλούς σύνδεσης του Διαδικτύου, και τέλος η επιχείρηση μεταβιβάζει με ασφάλεια τα στοιχεία που δέχτηκε στο διατραπεζικό σύστημα επεξεργασίας χρεώσεων και διαπιστώνει την πιστοληπτική ικανότητα του καταναλωτή χάρη στην αυτόματη επικοινωνία με την τράπεζα έκδοσης (issuing bank) της κάρτας του καταναλωτή. Το SET είναι πρωτόκολλο βασισμένο σε ψηφιακές υπογραφές, οπότε επιλύονται οι παρεξηγήσεις «αποποίησης παραγγελίας». Αλλά το SET απέτυχε τελικά, δεν μπόρεσε να υιοθετηθεί από τη μεγάλη μερίδα των χρηστών καρτών στον παγκόσμιο Ιστό. Αυτό συνέβη κυρίως λόγω της επιτυχίας του SSL και της μη δυνατότητας αξιοποίησης από το SET των δυνατοτήτων του SSL. Tο σχήμα 3D-Secure ήρθε ακριβώς να 'καλύψει' αυτό το κενό.

Το 3D-Secure είναι ένα XML-based πρωτόκολλο σχεδιασμένο να αποτελεί ένα πρόσθετο στρώμα ασφάλειας για τις online συναλλαγές πιστωτικών (credit) και χρεωστικών (debit) καρτών. Αναπτύχθηκε από τη Visa με σκοπό τη βελτίωση της ασφάλειας των πληρωμών στο Internet (verified by Visa service). Υπηρεσίες βασισμένες στο πρωτόκολλο έχουν επίσης υιοθετηθεί από τη MasterCard, ως MasterCard SecureCode, ενώ και η American Express έχει προσθέσει το SafeKey σε ορισμένες χώρες.

Το 3D-Secure προσθέτει ένα βήμα αυθεντικοποίησης στις online πληρωμές. Η βασική έννοια του πρωτoκόλλου είναι να 'δέσει' την οικονομική διαδικασία εξουσιοδότησης με μια διαδικασία online αυθεντικοποίησης. Η αυθεντικοποίηση στηρίζεται σε 3 μέρη (domains), εξ' ου και το 3D στο όνομα. Τα 3 μέρη είναι: Αποδέκτης (Acquirer Domain), Εκδότης (Issuer Domain), και Διαλειτουργικότητα (Interoperability Domain). Το πρωτόκολλο χρησιμοποιεί XML μηνύματα που στέλνονται πάνω από SSL συνδέσεις με client authentication (έτσι εξασφαλίζεται η αυθεντικότητα των δυο μερών, διακομιστή και πελάτη, μέσω ψηφιακών πιστοποιητικών). Μια συναλλαγή που χρησιμοποιεί διαδικασίες 'Verified by Visa' ή 'MasterCard SecureCode' εκκινεί μια ανακατεύθυνση (redirect) στον ιστότοπο της τράπεζας που εκδίδει την κάρτα για να εξουσιοδοτήσει τη συναλλαγή. Κάθε εκδότρια τράπεζα μπορεί να χρησιμοποιήσει όποια μορφή αυθεντικοποίησης επιθυμεί (το πρωτόκολλο δε δεσμεύει), αλλά συνήθως χρησιμοποιείται μια password-based μέθοδος. Έτσι, το 'buy on the Internet' ουσιαστικά σημαίνει χρήση ενός κωδικού για την κάρτα.

Η έκδοση 'Verified by Visa' του πρωτοκόλλου συστήνει τη φόρτωση της σελίδας επικύρωσης της τράπεζας σε ένα inline frame session. Με αυτόν τον τρόπο το σύστημα της τράπεζας μπορεί να διατηρεί την ευθύνη για τα περισσότερα ρήγματα ασφάλειας. Η βασική διαφορά ανάμεσα στις υλοποιήσεις Visa και MasterCard αφορά τη μέθοδο δημιουργίας του UCAF (Universal Cardholder Authentication Field). Πρόκειται για μια κρυπτογραφική τιμή που συνδέει πληροφορίες αναγνώρισης του χρήστη της κάρτας (cardholder's personal identity information) με τη συγκεκριμένη ηλεκτρονική πληρωμή. Η MasterCard χρησιμοποιεί AAV (Accountholder Authentication Value) και η Visa χρησιμοποιεί CAVV (Cardholder Authentication Verification Value). Στο 3D-Secure σχήμα, ο ACS (Access Control Server) βρίσκεται στην πλευρά των εκδοτριών τραπεζών (issuers). Οι περισσότερες τράπεζες χρησιμοποιούν τρίτα μέρη για την υποστήριξη λειτουργιών ACS, δηλαδή χρησιμοποιούν εξειδικευμένες εταιρίες ως εξωτερικούς συνεργάτες (outsourcing).

Σχήμα 3.7 Ροή Συναλλαγής 3D-Secure

4. Επισημάνσεις –- Συμπεράσματα

Η διασφάλιση των συναλλαγών στο ηλεκτρονικό εμπόριο είναι μια αυτονόητη αναγκαιότητα: τα μεγαλύτερα εμπόδια περαιτέρω υιοθέτησης αυτών από τους καταναλωτές οφείλονται σε δισταγμούς και ανησυχίες που έχουν σχέση με ζητήματα ασφάλειας και ιδιωτικότητας. Οι συναλλαγές ηλεκτρονικού εμπορίου, καθώς χρησιμοποιούν τεχνολογίες παγκόσμιου Ιστού, απειλούνται και οι κίνδυνοι όπως το κακόβουλο λογισμικό και το ηλεκτρονικό ψάρεμα παραμένουν πάντα επίκαιροι. Η ασφάλεια σε συνδυασμό με την προστασία της ιδιωτικότητας των χρηστών έχει καταστήσει αναγκαία τη χρήση πολιτικών και μοντέλων ελέγχου προσπέλασης, τα οποία αξιοποιώντας κατάλληλες έννοιες και δομές (όπως οι κάτοχοι, οι ετικέτες, τα επίπεδα προσπέλασης, οι ρόλοι, το πλαίσιο αναφοράς, κλπ.), διασφαλίζουν την εμπιστευτικότητα, την ακεραιότητα και τη διαθεσιμότητα των εμπλεκομένων συναλλασσόμενων μερών (δεδομένα και μηχανήματα καταναλωτών, εμπόρων και άλλων ενδεχομένως ενδιάμεσων οντοτήτων).

Το κεφάλαιο αυτό κλείνει με θέματα υποστήριξης ηλεκτρονικών πληρωμών. Αναφέρονται με συντομία οι κυριότερες μορφές συστημάτων πληρωμών ηλεκτρονικού εμπορίου. Ειδική μέριμνα υπάρχει σε δύο σημαντικά σχήματα ασφαλείας που εμπλέκονται στην υποστήριξη πληρωμών ηλεκτρονικού εμπορίου: το πρωτόκολλο γενικής χρήσης SSL και το πρωτόκολλο 3D-Secure για τις online πληρωμές με χρήση πιστωτικών ή/και χρεωστικών καρτών.

5. Τεστ Αξιολόγησης


Σημείωση: Η διαβάθμιση δυσκολίας των κριτηρίων αξιολόγησης δίνεται με το πλήθος των αναγραφόμενων αστερίσκων.

6. Βιβλιογραφία

Anders J. (2014). The Basics of Information Security: Understanding the Fundamentals of InfoSec in Theory and Practice, 2nd Edition, Syngress - Elsevier, ISBN: 978-0128007440.

Aycock J. (2006). Computer Viruses and Malware, Springer, ISBN: 978-0387341880.

Cherdantseva, Y., & Hilton, J. (2013). A reference model of information assurance & security. In Availability, Reliability and Security (ARES), 2013 Eighth International Conference on, IEEE, pp. 546-555.

Georgiadis, C. K., Mavridis, I., Pangalos, G., & Thomas, R. K. (2001). Flexible team-based access control using contexts, Proc. 6th ACM symposium on Access control models and technologies, pp. 21-27.

Gollmann, D. (2011). Computer Security, 3rd edition, Wiley, ISBN: 978-0470741153.

Ince, D. (2009). Developing Distributed & E-commerce Applications, Third Edition, Prentice Hall, ISBN: 0321417194.

Kazan, E., Tan, C.W., & Lim, E.T. (2014). Towards a Framework of Digital Platform Disruption: A Comparative Study of Centralized & Decentralized Digital Payment Providers, in Proc. of ACIS, Auckland, New Zealand.

Khair, M. (1996). Design and Implementation of Secure Database Systems with Application on Healthcare Information Systems, Ph.D. Dissertation, Aristotle University of Thessaloniki, Greece.

Kura, D. (2013). Categorization of Large Corpora of Malicious Software, MSc. Thesis, University of New Orleans.

Laudon, K. & Traver, C. (2014). E-Commerce, 10/E, Prentice Hall, ISBN: 978-0133024449.

Pfleeger, C. P., Pfleeger, S. L. & Margulies, J. (2015). Security in Computing, Fifth Edition, Prentice Hall, ISBN: 0134085043.

Sandhu, R. & Samarati, P. (1997). Authentication, Access Control, and Intrusion Detection, The Computer Science and Engineering Handbook.

Sandhu, R. (1998). Role-Based Access Control, Advances in Computers, Vol.46, Academic Press.

Sandhu, R., Ferraiolo, D. & Kuhn, R. (2000). The NIST Model for Role-Based Access Control: Towards a Unified Standard, in Proceedings of the Fifth ACM Workshop on RBAC (RBAC 2000), Berlin, Germany, pp.47-63, ACM.

Stallings, W. (2014). Cryptography and Network Security: Principles and Practice, Sixth Edition, Pearson, ISBN: 0-13-335469-5.

Stallings, W. (2014b). Network Security Essentials Applications and Standards, Fith Edition, Pearson, ISBN: 0-13-337043-7.

Thomas, K. R. (1997). Team-Based Access Control (TMAC): A Primitive for Applying Role-Based Access Controls in Collaborative Environments, in Proceedings of the Second ACM Workshop on RBAC, November 6-7, Fairfax, VA, USA, ACM.

Trautman, L. J. (2014). E-Commerce and Electronic Payment System Risks: Lessons from PayPal. SMU Science and Technology Law Review 17.2.

Virus Bulletin (2015). Glossary, http://www.virusbtn.com.

Γεωργιάδης, Χ. Κ. (2002). Ασφάλεια Πληροφοριακών Συστημάτων και Εφαρμογές στον Έλεγχο Προσπέλασης Ιατρικών Βάσεων Δεδομένων μέσω Internet, Διδακτορική Διατριβή, Πολυτεχνική Σχολή, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης.

Κάτσικας, Σ. (2001). Aσφάλεια Yπολογιστών, Ελληνικό Ανοικτό Πανεπιστήμιο, ISBN: 960–538–226–1.

Μάγκος, Ε. (2013). Ασφάλεια Υπολογιστών και Προστασία Δεδομένων, Παν. Σημειώσεις, Ιόνιο Πανεπ/μιο.



Τέλος Κεφαλαίου